简而言之:默认Console Application项目中的方法工作正常,但在另一个项目(asp.net WebAPI)中相同的方法不起作用。我有两个 mongoDB 集合,如下所示。主题集合的示例文档(JSON):{        "_id" : ObjectId("5b9a2637635d16b2a2c5c562"),        "userId" : ObjectId("5b9a23d1a54d26b98f6acf34"),        "name" : "someName",        "notes" : [                {                        "date" : ISODate("2012-11-20T05:05:15.229Z"),                        "title" : "someTitle",                        "body" : "Note body - long teeeeeeext",                        "files" : [ ]                }        ]}用户集合示例文档:{        "_id" : ObjectId("5b9a23d1a54d26b98f6acf34"),        "loginName" : "someName",        "pass" : "hashedpassword"}我写了几个类(POCO Representation):public class Subject{    [BsonElement("_id")]    public ObjectId Id { get; set; }    [BsonElement("name")]    public string Name { get; set; }    [BsonElement("notes")]    public List<Notes> Notes { get; set; }    [BsonElement("userId")]    public ObjectId UserId { get; set; }}public class Notes{    [BsonElement("date")]    [BsonRepresentation(BsonType.DateTime)]    public DateTime Date { get; set; }    [BsonElement("title")]    public string Title { get; set; }    [BsonElement("body")]    public string Body { get; set; }    [BsonElement("files")]    public List<ObjectId> Files { get; set; }}public class User{    [BsonElement("_id")]    public ObjectId Id { get; set; }    [BsonElement("loginName")]    public string LoginName  { get; set; }    [BsonElement("pass")]    public string HashedPass { get; set; }}
                    
                    
                1 回答
 
                    
                    
                            婷婷同学_
                            
                                
                            
                        
                        
                                                
                    TA贡献1844条经验 获得超8个赞
是不是死锁了?如果是这样,那是因为您混合了异步和非异步代码,并且在尝试重新捕获同步上下文时发生了死锁。使代码一直异步。
public async Task<IEnumerable<User>> Get()
{
List<User> users = await MongoDataModel.Instance.GetUsers(MongoDataModel.Instance.CurrentMongoDB);
TestMethod();
return users;
}
有关详细信息,请参阅标记的副本
您应该使用与 microsoft 相同的命名约定,即返回Task或Task<T>应以Asyncso rename GetUsersto为后缀的任何内容GetUsersAsync。
如果要使用它,请在整个调用堆栈中使用异步。
- 1 回答
- 0 关注
- 206 浏览
添加回答
举报
0/150
	提交
		取消
	