C# 使用lambda和更新模型连接2表
这是一些不起作用的伪代码,但应该传达我的需求 问题实体的类型为C# 使用lambda和更新模型连接2表,c#,sql-server-2008,lambda,entity-framework-6,C#,Sql Server 2008,Lambda,Entity Framework 6,这是一些不起作用的伪代码,但应该传达我的需求 问题实体的类型为问题,有许多字段。如果IssueTracker\u Read记录中有链接记录,我想将Issue.Read更新为true 返回的集合应为列表,但带有list[x]。请阅读以根据链接记录进行更新。您可以尝试以下操作: var list = oSIM.Issues.Join(db.IssueTracker_Read, c => c.IssueId, o => o.issueid, (c, o) => ne
问题
,有许多字段。如果IssueTracker\u Read
记录中有链接记录,我想将Issue.Read
更新为true
返回的集合应为列表,但带有
list[x]。请阅读以根据链接记录进行更新。您可以尝试以下操作:
var list = oSIM.Issues.Join(db.IssueTracker_Read,
c => c.IssueId,
o => o.issueid,
(c, o) => new
{
c.read = o.issueid==null?false:true;
});
然后,您可以迭代返回的集合,并使用匿名对象中的新Read
属性更新问题
GroupJoin
在表之间执行左连接
编辑
添加了缺少的新的,谢谢用户2520306
编辑2
为Read属性添加了一个新条件,该条件应正确返回。var list=oSIM.Issues.GroupJoin(db.IssueTracker_Read,c=>c.IssueId,o=>o.IssueId,(c,o)=>new{Issue=c,IssueRead=o.DefaultIfEmpty()})。选择(groupJoinInfo=>{groupJoinInfo.Issue;Read=groupJoinInfo.IssueRead!=null//获取错误“Read”在当前上下文中不存在});这是最终的解决方案,但item.Read总是正确的。foreach(列表中的var项){item.Issue.Read=item.Read;//始终返回true?}
var list = oSIM.Issues.GroupJoin(db.IssueTracker_Read,
c => c.IssueId,
o => o.issueid,
(c, o) => new
{
Issue = c,
IssueRead = o.DefaultIfEmpty()
}).Select(groupJoinInfo=> new {
groupJoinInfo.Issue,
Read = groupJoinInfo.IssueRead != null && groupJoinInfo.IssueRead.Any()
});