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。
在“编程 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。