新的C#驱动程序完全使用异步方式,并且在我看来,对旧的设计模式(如n层体系结构中的DAL)进行了一些小的改进。
在我的Mongo DAL中,我通常会这样做:
这样我就能获得持久化的
现在,所有的操作都是异步的,比如
在我的Mongo DAL中,我通常会这样做:
public T Insert(T entity){
_collection.Insert(entity);
return entity;
}
这样我就能获得持久化的
ObjectId
了。现在,所有的操作都是异步的,比如
InsertOneAsync
。当InsertOneAsync
完成时,Insert
方法怎样才能返回entity
呢?你可以举个例子吗?
await task
行起作用吗?它一直在喊叫需要在某个async
对象上执行await
.. 但是当然已经有.ToListAsync()
存在了。有任何想法可能是什么问题吗?@mnemosyn - Mark Pieszak - Trilon.ioawait
只能在声明为async
的方法中使用。 - mnemosynasync Task FooAsync(IMongoCollection<BsonDocument> collection)
作为一个方法,它可以工作。谢谢。我想把它们链接在一起可能是接下来要困扰我的部分...哈哈 - Mark Pieszak - Trilon.ioIMongoCollection<BsonDocument>
对我来说看起来不太好(为什么不是强类型?)但这离原始问题太远了... - mnemosyn