0

在 Julia Lerman 第 2 版的“Programming Entity Framework”中,在专门介绍 Entity SQL 的章节中,p。115,我们有以下使用查询构建器方法使用 EF 4.1.Where.Select字符串参数进行投影的示例:

ObjectQuery<DbDataRecord> contacts = context.Contacts
    .Where("it.FirstName='Robert'")
    .Select("it.Title, it.FirstName, it.LastName");

我正在使用 Entity Framework 6、.Net 4.6、VS 2015。编译器抱怨没有.Where并且.Select接受字符串参数,只有 lambdas。有什么解决方案如何遵循这本书的例子吗?

4

1 回答 1

2

这个例子似乎是关于旧的 ObjectQueryAPI,现在不应该真正使用。尽管如此,它仍然可以与 EF6.x 一起使用,如下所示:

ObjectContext objectContext = ((IObjectContextAdapter)conte).ObjectContext;
ObjectSet<DbDataRecord> objectSet = objectContext.CreateObjectSet<DbDataRecord>("DbDataRecords");
// Async version: var res0 = await objectSet.Where("it.FirstName='Robert'").ToListAsync();
var res0 = objectSet.Where("it.FirstName='Robert'").ToList();

也就是说,您确实应该将 lambda 与新的DbContextAPI 一起使用。

于 2015-09-22T15:02:22.310 回答