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
C# 如何在C中连接多个不同的实体_C#_Linq_Entity Framework 6 - Fatal编程技术网

C# 如何在C中连接多个不同的实体

C# 如何在C中连接多个不同的实体,c#,linq,entity-framework-6,C#,Linq,Entity Framework 6,我有4个不同的实体,我想将它们连接在一起,比如Sql server中的左连接, 在我的一个表中,该表没有信息且为空,我希望实体返回null时使用默认值,但返回异常 这是我的代码: 从db.PermissionStructureRepo.Get中的ps 将a加入db.ActionRepo.Get on ps.ActionID等于a.ActionID加入pa 从pa中的r.DefaultIfEmpty 将p连接到db.PermissionRepo.Getx=>x.UserID==UserID,nul

我有4个不同的实体,我想将它们连接在一起,比如Sql server中的左连接, 在我的一个表中,该表没有信息且为空,我希望实体返回null时使用默认值,但返回异常

这是我的代码:

从db.PermissionStructureRepo.Get中的ps 将a加入db.ActionRepo.Get on ps.ActionID等于a.ActionID加入pa 从pa中的r.DefaultIfEmpty 将p连接到db.PermissionRepo.Getx=>x.UserID==UserID,null,null,ps.PermissionStructureID等于p.PermissionStructureID到rp中 从rp.DefaultIfEmpty中的r2开始 将ug加入db.UserGroupRepo.Get on r2.UserGroupID.GetValueOrDefault0等于ug.UserGroupID加入rug 从rug.DefaultIfEmpty中的r3开始 选择新的 { ps.PermissionStructureID, ParentStructureID=ps.ParentStructureID.GetValueOrDefault0, 所选=r2.PermissionID>0?真:假, r、 ActionID, ActionName=ps.ActionDataFieldID.GetValueOrDefault0>0?ps.ActionPersianColumnName:r.ActionName, r3.UserGroupID, r3.GroupName, ActionDataFieldID=ps.ActionDataFieldID.GetValueOrDefault0, ps.ActionDataFieldName, r2.AllowCreatePermission, r2.AllowUpdatePermission, r2.AllowDeletePermission, r2.DenyCreatePermission, r2.Denydelette许可, r2.DenyUpdatePermission } 这是个例外:

对象引用未设置为对象的实例。 消息:在E:\Projects\MIM.App\MIM\Common\MIM.PubUsers\MIM.PubUsers\PubUsers\PubUsersBLL.cs中的MIM.PubUsers.c.b\u 6\u 10f\u\u匿名类型32 h\u\u透明标识符3中:System.Linq.Enumerable.d\u 414.MoveNext第188行 在System.Linq.Enumerable.d_u233.MoveNext at System.Collections.Generic.List1..ctorIEnumerable1 collection at System.Linq.Enumerable.ToList[TSource]IEnumerable1 source 在MIM.PubUsers.PubUsersBLL.FillPermissionTreeEnumFormState状态下,输入32用户ID


这回答了你的问题吗?r、 r2,r3可以为null,因此检查投影中的null r?.ActionID,r3?。UserGroupID@SvyatoslavDanyliv一般来说,当使用LINQ to EF时,这不适用,也不是必需的,并且不能转换为表达式树。@NetMage,他有NRE,因为他使用IEnumerable。它不是EF或其他IQueryable提供程序。@SvyatoslavDanyliv错误消息与发布的代码无关,而是与标记和数据库相关。否则的话。。。