Хорошо, я новичок, так что терпите меня.Попытка внедрить систему заказов и желание сохранить заказы в базе данных с помощью LINQ to Entities.Я могу сделать это сейчас, но для каждого нового объекта, который сохраняется в таблице заказов, вставляется новая строка с новым OrderNo для каждого ProductID, где, как я, очевидно, должен иметь возможность иметь несколько ProductID для каждого OrderNo.
Все очень упрощено, так как я просто тестирую.
У меня есть таблица заказов с такими столбцами:
OrderNo PK, Identity specification
Line int PL
ProductID int
и таблица продуктов
ProductID int PK
Заказсоздается объект сущности, а его свойства заполняются данными из формы, которая публикуется в методе действия.Затем он сохраняется в таблице заказов со следующим кодом:
(DropDownList1Value) имеет значение существующего ProductID, а "DropDownList1Value" - это идентификатор элемента DropDownList в представлении.
[HttpPost]
public ActionResult OrderProcessor()
{
int productId = int.Parse(Request.Form["DropDownList1Value"]);
var order = new Order();
order.ProductID = productId;
context.Orders.AddObject(order);
context.SaveChanges();
return View(order);
}
Таким образом, вставленные записи выглядят так: Извините, не удалось выровнять значения под соответствующим именем столбца в этом редакторе.
OrderNo Line ProductID
101 0 3
102 0 5
103 0 2
Где, как я хочу, что-то вроде этого:
OrderNo Line ProductID
101 1 3
101 2 5
101 3 2
102 1 2
Итак, я хотел бы знать, как я могу изменить таблицу заказов, чтобы она могла иметь несколько записей с одинаковым «OrderNo» и просто увеличить значение «Line» для diff ProductID и как мне вставить такие записи с помощью LinQ вОбъекты, в которых у меня, очевидно, будет много ProductId из нескольких DropDowLists, и все они будут для одного заказа.
В настоящее время у меня есть зависимость внешнего ключа от ProductID в таблице Products, поэтому ни одна запись в таблице Orders не может иметь ProductID, которыйне существует в таблице продуктов.Мне нужно, чтобы таблица зависела от целого ключа, т.е. OrderNo + Line, и имела автоинкремент "Line".
Или есть ли намного лучший способ реализации того, что я собираюсь здесь?
Спасибо.