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;
}
它完美无瑕,先生,您是我今天的英雄:)谢谢您。