Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/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# 使用lambda和更新模型连接2表_C#_Sql Server 2008_Lambda_Entity Framework 6 - Fatal编程技术网

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()
     });