Я попытался вставить строку заказа с существующим пользователем, используя LINQ.Программа должна только вставлять детали заказа и заказа, потому что пользователь уже существует, и я не хочу добавлять нового пользователя для каждого заказа.
Вместо этого программа теперь вставляет Order, OrderDetails вместе с пользователем.Итак, я получаю дубликатов пользователей в своей таблице пользователей.
Я перебираю элементы карт, создаю строки orderdetails и добавляю их в таблицу Order.
order o = new order() { orderDate = DateTime.Today};
foreach (CartItem ci in items)
{
orderdetail od = new orderdetail() { itemId = ci.ItemId, itemType = char.Parse(ci.ItemType), price = int.Parse(ci.Price.ToString()) };
o.orderdetails.Add(od);
}
user u = Users.GetUserByUserId(int.Parse(Session["userId"].ToString()));
Orders.AddOrder(o, u);
Ниже показано, как я добавляю Orders
public static Boolean AddOrder(order o, user u)
{
try
{
u.orders.Add(o);
db.orders.InsertOnSubmit(o);
db.SubmitChanges();
return true;
}
catch
{
return false;
}
}
Если я удалю db.orders.InsertOnSubmit (o) ;, база данных не изменится, и в нее не будет добавлен порядок.Если я добавлю эту строку, она вставит как заказ, детали заказа и пользовательские данные.
Я очень новичок в LINQ и, пожалуйста, сообщите мне, если у вас есть идеи.Спасибо.