我正在尝试 EF CTP5 POCO,并从 EF4 EntityModel 转换为 POCO 仅代码方法。
internal class InvoiceContext : DbContext
{
public DbSet<Invoice> Invoices {get; set;}
public DbSet<InvoiceLine> InvoiceLines {get; set;}
}
public class Invoice
{
public Guid InvoiceId { get; set; }
public virtual ICollection<InvoiceLine> Lines { get; set; }
}
public class InvoiceLine
{
public Guid InvoiceLineId { get; set; }
public Guid InvoiceId { get; set; }
public virtual Invoice Header { get; set; }
}
所以将我的旧代码从 EF4 模型转换为 POCO,我应该添加新的发票和行。我曾经创建主类并将详细信息添加到主类本身的实例中。
var inv = new Invoice();
inv.InvoiceId = Guid.NewGuid();
var db = new InvoiceContext();
db.Invoices.Add(inv);
var invLine = new InvoiceLine();
invLine = InvoiceLineId = Guid.NewGuid();
inv.Lines.Add(invLine);
inv.Lines <== 此时为空,所以我不能在发票本身的实例中添加一行我应该创建 InvoiceLines 的集合并设置它,还是有其他方法可以做到这一点。
简而言之,我如何使用 POCO 代码 (CTP5) 将主/明细行添加到我的数据库中。