2

早期我们使用LINQ提供程序MongoDb,但现在我们已经迁移到MongoDb c# driver 2.0并且有一些我不明白的事情。

当我们使用LINQ提供者时,查询如下所示:

  var query = from c in dbCollection.AsQueryable()
                        where c.UserId == userId && c.CampaignId == campaignId
                        select c;

但现在我可以通过几种方式实现它:

var query =
     Builders<Analytics>.Filter.Eq(a => a.UserId, userId) &
     Builders<Analytics>.Filter.Eq(a => a.CampaignId, campaignId);

Builders<Analytics>.Filter.Where(
c => c.created >= Convert.ToDateTime(dateFrom) &&
     c.created <= Convert.ToDateTime(dateTo));

这些方法有什么不同或优点吗?

4

1 回答 1

1

在我曾经做过的 MongoDB 教程中,他们说你总是可以使用 LINQ,但你不应该强迫它。这仅仅是因为并不是所有的东西都已经在 LINQ 中实现了,而且可能不是(或者甚至不可能)通过 LINQ“方式”来实现。这实际上意味着您可以同时使用这两种方式。您可以尽可能使用 Fluent API 或 LINQ。

于 2015-08-07T15:10:38.763 回答