我想将我的表的两列移动到另一个表。我可以选择我想要移动的值,但我无法移动它们。我该怎么做?这是我的实现
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 attiributes的所有值。任何帮助都会得到满足。
答案 0 :(得分:3)
使用时应将选择添加到表中并保存更改:
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();
答案 1 :(得分:3)
Stefan的回答是可以的,但是你可以一步插入所有内容:
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();
修改强>
如果要从源表中删除数据,我还会将所有内容包装在单个事务中,以避免出现错误时出现不一致。