Пишу программу для учета поставщиков, и заказов у данных поставщиков с использованием Entity Framework Code First.
Одновременно с созданием заказа, создается новый поставщик с данным заказом, то есть в БД есть поставщик с заказом и поставщик без заказа, если создать ещё один заказ, то создастся ещё один поставщик с данным заказом.
Классы:
Поставщик
public class Contractor
{
public int ContractorId { get; set; }
public string ContractorName { get; set; }
public string ManagerName { get; set; }
public string ContactPhone { get; set; }
public string ContactEmail { get; set; }
public ICollection
Заказ
public class Order
{
public int OrderId { get; set; }
public virtual ICollection
public override string ToString()
{
return "Счет №: " + InvoiceNumber + " от " + OrderDate.Day + "/" + OrderDate.Month + "/" + OrderDate.Year;
}
}
Создание Заказа
private void SaveBtn_Click(object sender, RoutedEventArgs e)
{
using (var db = new ContractorContext())
{
Order order = new Order();
if(InvoiceNumberBox.Text != null)
order.InvoiceNumber = InvoiceNumberBox.Text;
order.DeliveryDate = DeliveryDatePick.SelectedDate ?? DateTime.Now;
order.OrderDate = OrderDatePick.SelectedDate ?? DateTime.Now;
if(InvoiceSumBox.Text != null)
order.Sum = Decimal.Parse(InvoiceSumBox.Text.Replace('.',','));
order.Contractor = _contractor;
order.ContractorId = _contractor.ContractorId;
order.PositionsQty = new List
Объект _contractor передаётся из другой формы.
В чем ошибка?
Ответ
объекты order и _contractor находятся в разных экземплярах контекста ContractorContext. Чтобы не плодить дубли не заполняйте поле order.Contractor, вполне достаточно указать order.ContractorId
Комментариев нет:
Отправить комментарий