Linq如何将两个列的所有值移动到另一个表
本文关键字:移动 另一个 两个 Linq | 更新日期: 2023-09-27 18:06:16
我想将我的表的2列移动到另一个表。我可以选择我想要移动的值,但我无法移动它们。我该怎么做呢?这是我的实现
var cartQuery = (from c in db.CartTbls.AsQueryable()
join cs in db.CartShoeTbls on c.CartID equals cs.CartID
where c.CustomerID == cusID
select new {c.CustomerID,c.TotalPrice,cs.ShoeID,cs.Quantity});
我要做的是复制ShoeID和Quantity属性的所有值。
Use应该将所选内容添加到表中并保存更改:
foreach (var item in cartQuery)
db.OrderShoeTbl.Add(new OrderShoe()
{ ShoeID = item.ShoeID, Quantity = item.Quantity });
db.SaveChanges();
如果你使用的是Linq to SQL,插入是不同的,应该是这样的:
foreach (var item in cartQuery)
db.OrderShoeTbl.InsertOnSubmit(new OrderShoe()
{ ShoeID = item.ShoeID, Quantity = item.Quantity });
db.SubmitChanges();
Stefan的回答是OK,但是你可以在一步中插入所有内容:
var cartQuery = (from c in db.CartTbls.AsQueryable()
join cs in db.CartShoeTbls on c.CartID equals cs.CartID
where c.CustomerID == cusID
select new OrderShoeTbl{ShoeID = c.ShoeID, Quantity = c.Quantity});
db.OrderShoeTbl.InsertAllOnSubmit(cartQuery);
db.SubmitChanges();
编辑
如果你想从源表中删除数据,我也会把所有的东西包装在一个事务中,以避免在错误的情况下不一致