Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ to Entities无法识别方法'System.Data.Entity.DbSet`1'_C#_Linq - Fatal编程技术网

C# LINQ to Entities无法识别方法'System.Data.Entity.DbSet`1'

C# LINQ to Entities无法识别方法'System.Data.Entity.DbSet`1',c#,linq,C#,Linq,正在抛出以下System.NotSupportedException LINQ to Entities无法识别方法“System.Data.Entity.DbSet`1[Ika.Security.Data.Model.CLIENT_REL]SetCLIENT_REL”方法,并且无法将此方法转换为存储表达式 我做错了什么?我认为您不能像从查询中调用_dataContext.Set那样调用它。LINQ无法将其转换为查询。看起来您正在使用AsEnumerable加载数据集,并在查询中使用该数据集,这是

正在抛出以下System.NotSupportedException

LINQ to Entities无法识别方法“System.Data.Entity.DbSet`1[Ika.Security.Data.Model.CLIENT_REL]SetCLIENT_REL”方法,并且无法将此方法转换为存储表达式


我做错了什么?

我认为您不能像从查询中调用_dataContext.Set那样调用它。LINQ无法将其转换为查询。看起来您正在使用AsEnumerable加载数据集,并在查询中使用该数据集,这是不允许的。您需要重新构造它,或者使它成为两个单独的查询。不幸的是,我不能给你更好的建议,我不完全确定你的查询在做什么,我更熟悉lambda语法。如果你试图连接表,你会希望使用linq连接,而不是where,就像你在写t-sql一样。另外,成本是正确的,您不能使用一个可计算的,因为它需要是可计算的,才能正确转换这是哪一个数据库和数据提供程序?Oracle数据库和Oracle托管访问提供程序’我尝试了lambda,这似乎起到了作用。。。Lambda正在将其转换为内部连接,我想要的是剩下的;完成后将发布等效的lambda查询。。。
 var query = from cl in
                 (
                     from cl in _dataContext.Set<CLIENT>()
                     from cr in
                         _dataContext.Set<CLIENT_REL>()
                             .Where(m => m.CLIENT_CHILD_ID == cl.CLIENT_ID)
                             .DefaultIfEmpty()
                             .AsEnumerable()

                     select new {cl.CLIENT_ID, cl.CLIENT_NAME, cr.CLIENT_PARENT_ID, cl.CLIENT_CODE, cl.CLIENT_DESCR}
                     )
                 from pcl in
                     _dataContext.Set<CLIENT>().Where(p => p.CLIENT_ID == cl.CLIENT_PARENT_ID).DefaultIfEmpty()

                 select new ClientDetail
                 {
                     ClientId = cl.CLIENT_ID,
                     ClientName = cl.CLIENT_NAME,
                     ClientCode = cl.CLIENT_CODE,
                     ClientDescription = cl.CLIENT_DESCR,
                     ParentName = pcl.CLIENT_NAME
                 };