LINQ to Entities 无法识别方法 - Include + Where
LINQ to Entities does not recognize the method - Include + Where
我有这个工作代码
var h = db.MyTable.Include("Children").Include("Parent").ToList();
但是当我添加 where 条件时
var h = db.MyTable.Include("Children").Include("Parent").Where(x => x.Country==Session["country"].ToString()).ToList();
它给我一个错误
LINQ to Entities does not recognize the method 'System.Object get_item (System.String)' method , and this method cannot be translated into a store expression.
我该如何重写它?我是初学者 :-)
谢谢
试试这个:
var t = Session["country"].ToString();
var h = db.MyTable.Include("Children").Include("Parent").Where(x => x.Country==t).ToList();
只有活动可以解析为您的提供商支持的表达式树
这是您的Where
-表情造成的。您应该只在其中使用变量或调用可以转换为 SQL 的方法。
首先,将您的 Session 值保存在一个变量中:
var country = Session["country"].ToString();
然后在您的 Where
-表达式中使用 country
。
MSDN provides a list 可以在 LINQ to SQL 表达式中使用的方法以及它们如何映射到 SQL 函数。
我有这个工作代码
var h = db.MyTable.Include("Children").Include("Parent").ToList();
但是当我添加 where 条件时
var h = db.MyTable.Include("Children").Include("Parent").Where(x => x.Country==Session["country"].ToString()).ToList();
它给我一个错误
LINQ to Entities does not recognize the method 'System.Object get_item (System.String)' method , and this method cannot be translated into a store expression.
我该如何重写它?我是初学者 :-) 谢谢
试试这个:
var t = Session["country"].ToString();
var h = db.MyTable.Include("Children").Include("Parent").Where(x => x.Country==t).ToList();
只有活动可以解析为您的提供商支持的表达式树
这是您的Where
-表情造成的。您应该只在其中使用变量或调用可以转换为 SQL 的方法。
首先,将您的 Session 值保存在一个变量中:
var country = Session["country"].ToString();
然后在您的 Where
-表达式中使用 country
。
MSDN provides a list 可以在 LINQ to SQL 表达式中使用的方法以及它们如何映射到 SQL 函数。