gpt4 book ai didi

c# - Entity Framework 6 Fluent 映射 - 一对多代码优先

转载 作者:行者123 更新时间:2023-12-02 10:53:24 35 4
gpt4 key购买 nike

给定以下 SQL 表:

EntityGroup:
Id int, (PK)
GroupName nvarchar(100)

Entity:
Id int, (PK)
EntityGroupId int, (FK Non-nullable)
Description nvarchar(100)

以及以下 POCO

  public class Entity
{
public int Id { get; set; }
public int EntityGroupId { get; set; }
public int RefNumber { get; set; }
}

public class EntityGroup
{
public int Id { get; set; }
public virtual IList<Entity> Entities { get; set; }
}

如何正确配置流畅映射?我希望 Entity.EntityGroupId 保留为 int 而不是 EntityGroup 对象。

我希望能够 .Include() 可选地包含("Entities")。我得到的最接近的是这个,但即使我不使用 .Include("Entities") ,这似乎也会急切加载所有实体,这不是我想要的行为:

modelBuilder.Entity<EntityGroup>()
.HasMany(x => x.Entities);

最佳答案

你必须开启延迟加载,您可以通过设置 dbContext Like 来仅针对特定的工作单元或所有工作单元执行此操作

   dbContext.Configuration.LazyLoadingEnabled = false;
dbContext.Configuration.ProxyCreationEnabled = false;

或者将其设置在 DbContext 的 Ctor 中。

关于c# - Entity Framework 6 Fluent 映射 - 一对多代码优先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42516104/

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