我正在使用.Net + Mongodb设置odata v4 API。
从microsoft official document开始,实体框架被用作数据访问层。但是看起来它不适用于mongodb。可以与mongo db一起使用的EF是否有替代品?
答案 0 :(得分:1)
这完全取决于您希望EF将MongoDB的哪些功能包装起来,最常见的功能之一就是能够使用Linq,并且因为您提到了使用linq的OData,所以我将对此进行解释。
使用标准的mongodb驱动程序(https://www.nuget.org/packages/MongoDB.Driver/2.7.2),您可以执行以下操作在集合上公开IQueryable<T>
对象:
var mongoClient = new MongoClient();
var mongoDatabase = mongoClient.GetDatabase("test");
var mongoCollection = mongoDatabase.GetCollection<Person>("users");
var over18 = await mongoCollection.AsQueryable()
.Where(x => x.Age >= 18)
.Select(x => x.Name)
.ToListAsync();
class Person
{
public ObjectId Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}