gpt4 book ai didi

c# - 连接过程后 Linq 更新不同的表

转载 作者:行者123 更新时间:2023-12-03 00:23:09 25 4
gpt4 key购买 nike

我使用 linq join 合并了 3 个表。之后,我想使用从网络表单获得的数据来更新此表。我怎样才能做到这一点 ?我的实现如下

public void updateShoes(Shoe shoe) 
{
var query = from b in db.BrandTbls.AsQueryable()
join m in db.ShoeModelTbls on b.BrandID equals m.BrandID
join s in db.ShoeTbls on m.ModelID equals s.ModelID
where shoe.ShoeID == s.ShoeID
orderby m.ModelName
select new
{
s.ShoeID,
s.Size,
s.PrimaryColor,
s.SecondaryColor,
s.Quantity,
m.ModelName,
m.Price,
b.BrandName
};
}

最佳答案

虽然您的方法现在有点不清楚(例如,我们不知道您要尝试更新哪些实体),但是您可以像这样修改代码,

public void updateShoes(Shoe shoe) 
{
var query = from b in db.BrandTbls.AsQueryable()
join m in db.ShoeModelTbls on b.BrandID equals m.BrandID
join s in db.ShoeTbls on m.ModelID equals s.ModelID
where shoe.ShoeID == s.ShoeID
orderby m.ModelName
select new
{
Shoe = shoe, Brand = b, Model = m
};

foreach(var o in query)
{
o.Shoe.ColorName = "Black";
o.Brand.BrandName = "New Branding";
o.Model.ModelName = "Something else";
}

db.SaveChanges();
}

您可以选择整个实体,而不是从每个实体中选择选定的属性。然后您可以像我上面所做的那样更新循环中的每个实体。

关于c# - 连接过程后 Linq 更新不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23848259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com