Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.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# 表1中的LINQ update列的id来自表2,电子邮件在哪里匹配?_C#_Sql_Linq - Fatal编程技术网

C# 表1中的LINQ update列的id来自表2,电子邮件在哪里匹配?

C# 表1中的LINQ update列的id来自表2,电子邮件在哪里匹配?,c#,sql,linq,C#,Sql,Linq,我正在尝试使用我的捐赠者表中的DonorID列、primary key的值更新电子邮件表中设置为外键的DonorID列 捐赠者表保存捐赠者的所有不同电子邮件地址,在它们进入我的电子邮件表时将任何新地址添加到新行,并为捐赠者提供一个ID。我想更新我的电子邮件表中的每个DonorID,当前设置为0,以匹配我的捐赠者表中相应的DonorID 我可以查询表格以返回显示所有匹配电子邮件地址的结果,但我无法确定更新电子邮件表格的逻辑,以反映与我的捐赠者表格中的该地址关联的新DonorID 这是我到目前为止的

我正在尝试使用我的
捐赠者
表中的
DonorID
列、
primary key
的值更新电子邮件表中设置为
外键的
DonorID列

捐赠者
表保存捐赠者的所有不同电子邮件地址,在它们进入我的电子邮件表时将任何新地址添加到新行,并为
捐赠者
提供一个
ID
。我想更新我的电子邮件表中的每个
DonorID
,当前设置为
0
,以匹配我的
捐赠者表中相应的
DonorID

我可以查询表格以返回显示所有匹配电子邮件地址的结果,但我无法确定更新电子邮件表格的逻辑,以反映与我的
捐赠者
表格中的该地址关联的新
DonorID

这是我到目前为止的代码

        //join rows based on sender address
        var join = from emai in db.Emails
                   from dono in db.Donors
                   where emai.Sender == dono.Email
                   select new{ Sender = emai.Sender, EID = emai.DonorID, DID = dono.DonorID };
        gvJoin.DataSource = join;
        gvJoin.DataBind();

        // Query the database for the row to be updated.
        var query = from ema in db.Emails
                    where ema.DonorID == 0
                    select ema;

        // Execute the query, and change the column values
        foreach (Email ema in query)
        {
            ema.DonorID = 1;
        }

        // Submit the changes to the database.
        db.SubmitChanges();
我知道这应该很简单,但我也很简单,因此任何帮助都将不胜感激:)

捐赠者表

DonorID  |       Email  
---------+---------------------       
  1      |  user1@domain.com    
  2      |  user2@domain.com    
  3      |  user3@domain.com    
  4      |  user4@domain.com    
  5      |  user5@domain.com
DonorID  |      Sender  
---------+---------------------            
  0      |  user1@domain.com    
  0      |  user2@domain.com    
  0      |  user3@domain.com
  0      |  user4@domain.com    
  0      |  user5@domain.com
电子邮件表

DonorID  |       Email  
---------+---------------------       
  1      |  user1@domain.com    
  2      |  user2@domain.com    
  3      |  user3@domain.com    
  4      |  user4@domain.com    
  5      |  user5@domain.com
DonorID  |      Sender  
---------+---------------------            
  0      |  user1@domain.com    
  0      |  user2@domain.com    
  0      |  user3@domain.com
  0      |  user4@domain.com    
  0      |  user5@domain.com

只是想了解一下我的表数据当前的外观。我无法发布我的
DBML
的图像,但每个表中都有更多的字段。我想我不会在这个查询中使用它们

你的意思是这样的

foreach (Email ema in query)
{
    ema.DonorID = join.FirstOrDefault(j => j.Sender == ema.Sender).DID;
}

它完美无瑕,先生,您是我今天的英雄:)谢谢您。