gpt4 book ai didi

entity-framework - 一对多导航属性在代码优先 EF5 中为空

转载 作者:行者123 更新时间:2023-12-04 04:57:42 24 4
gpt4 key购买 nike

在代码优先 Entity Framework 5 中定义相关集合的正确方法是什么?
我在关注这个 summary但有些东西不起作用。

我有以下模型:

class Order
{
public Guid Id {get; set; }
public DateTime Created {get; set;}
public ICollection<OrderLine> OrderLines {get; set;}
}

class OrderLine
{
public Guid Id {get; set;}
public Guid OrderId {get; set;}
public Order Order {get; set;}
public string Product {get;set;}
}

class OrderContext : DbContext
{
public DbSet<Order> Orders { get; set; }
public DbSet<OrderLine> OrderLines { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

base.OnModelCreating(modelBuilder);
}
}

有一个 Order与数据库中的一些行。加载后是 OrderLines属性为空。

我试过制作 OrderLines虚拟,它没有帮助。
否则,一切都设置为默认值。延迟加载是真的,CreateProxy 是真的...

当我尝试 Include("OrderLines")它可以工作并从数据库中获取行。

最佳答案

OrderLine尝试在导航属性上放置 FK 注释:

class OrderLine
{
public Guid Id {get; set;}
public string Product {get;set;}

// 1:many with Order
public virtual Guid OrderId {get; set;}
[ForeignKey("Id")]
public virtual Order Order {get; set;}
}

关于entity-framework - 一对多导航属性在代码优先 EF5 中为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16558945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com