У меня есть класс:
public class Client
{
public Guid Id {get; set;}
public virtual List<Receipt> Receipts { get; set; }
public virtual List<Invoice> Invoices { get; set; }
}
затем квитанция:
public class Receipt
{
public Guid Id { get; set; }
public string ServiceName {get; set;}
public decimal Total { get; set; }
public virtual Client Client { get; set; }
}
и счет-фактура:
[Table("Invoices")]
public class Invoice:Receipt
{
public double TaxNumber { get; set; }
}
когда у меня есть объекты этих классов, и я пытаюсь связать их следующим образом:
client = context.Clients.Find(guid1);
receipt1 = context.Receipts.Find(guid2);
receipt2 = context.Receipts.Find(guid3);
invoice1 = context.Invoices.Find(guid4);
//--------------linking
invoice1.Client = client;
receipt1.Client = client;
receipt2.Client = client;
context.SaveChanges();
затем Client_Id
в таблицах Receipts
и Invoices
остается NULL. Однако, если я свяжу их так:
client.Invoices.Add(invoice1);
client.Receipts.Add(receipt1);
client.Receipts.Add(receipt2);
context.SaveChanges();
, тогда Client_Id
в базе данных обновляется должным образом. Почему так?