Jam*_*der 2 .net linq linq-to-entities entity-framework
我不断得到一个关于Linq to Entities的例外,不支持这样的certaion查询表达式:
MyDataContext db = new MyDataContext()
Brand = db.Brands.First(b => b.BrandId == Int32.Parse(brandIdString))
Run Code Online (Sandbox Code Playgroud)
我不是试图将字符串解析传递给实体存储,我只是想将该字符串解析为整数以进行比较.唯一的工作就是手头或者我完全离开这里吗?
最好的选择(至少对于您给出的示例)是从LINQ语句中提取操作:
Int32 brandId = Int32.Parse(brandIdString)
MyDataContext db = new MyDataContext()
Brand = db.Brands.First(b => b.BrandId == brandId )
Run Code Online (Sandbox Code Playgroud)
说明:
当您使用LINQ时,它想要找出将尽可能多的工作卸载到数据库查询的方法.为了做到这一点,它实际上创建了一个表达式树,其中包含您在各种lambda表达式中要求它执行的所有操作.然后,当您想要运行查询时,它会决定哪些SQL语句最适合执行您要求它执行的操作.这允许它做一些非常奇特的优化.但是,如果它不知道如何将某些内容转换为SQL语句,那么当您尝试运行查询时,它会生你的气.