Entity Framework6:.Where和.Select接受字符串参数?

Entity Framework 6: .Where and .Select that accept string parameters?

在“编程 Entity Framework”中,Julia Lerman 的第 2 版,在专用于实体 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,只有 lambda。有什么解决方案如何遵循这本书的例子吗?

这个例子似乎是关于旧的 ObjectQuery API,现在不应该使用它。尽管如此,它仍然可以与 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 而不是新的 DbContext API。