entity framework 6 вставка связанных сущеостей
Есть несколько сущностей: operation, batch и sale_price. Я хочу добавить новую операцию, с новым батчем и новой ценой.
Batch newBatch = new Batch
{
Product = product,
Product_Code = product.Code,
Purchase = Helper.ConvertAndRound(Purchase.Text),
Quantity = Helper.ConvertAndRound(Quantity.Text),
Create_Time = now
};
Sale_Price sale_Price = new Sale_Price
{
Sale = Helper.ConvertAndRound(Sale.Text),
Product = product,
Product_Code = product.Code,
Start_Date = now,
End_Date = null
};
operation = new Operation
{
Batch = newBatch,
Sale_Price = sale_Price,
Quantity = Helper.ConvertAndRound(Quantity.Text),
Discount = 0
};
Добавление в бд:
myContext.Operations.AddRange(operations);
myContext.SaveChanges();
Все сущности добавляются, но связи не проставляются (у Operation Batch_id = null и sale_price = null). Настройка связей вроде правильная, т.к если в бд есть связи, то он их подгружает.
Если проставлять id костылем, то все работает:
myContext.Operations.AddRange(operations);
myContext.SaveChanges();
foreach (Operation operation in operations)
{
operation.Batch_Id = operation.Batch.Id;
operation.Sale_Price_Id = operation.Sale_Price.Id;
}
myContext.SaveChanges();
Ответы (1 шт):
Автор решения: Илья Самолётов
→ Ссылка
А ларчик просто открывался. Видимо я допустил ошибку в описании моделей, что странно, ведь все связанные сущности и данные он загружал правильно. Сейчас сделал генерацию БД на основе кода, было много ошибок. Исправил их и все заработало.