Mat*_*sca 5 .net c# entity-framework entity-framework-6
因此,在疯狂地搜索了三个小时并在网上到处寻找之后,我强迫自己在这里问。我使用实体框架已有 5 年多了,但从未遇到过下面描述的那种问题
我有两个 POCO 类(已编辑):
public class Company
{
public virtual ICollection<BusinessUnit> BusinessUnits { get; protected set; } = new List<BusinessUnit>();
public int Id { get; protected set; }
}
public class BusinessUnit
{
public virtual Company Company { get; protected set; } = new Company();
public int CompanyId { get; protected set; }
public string Description { get; protected set; }
}
Run Code Online (Sandbox Code Playgroud)
在我的“BusinessUnit”配置中我声明:
this
.HasRequired(c => c.Company)
.WithMany(c => c.BusinessUnits)
.HasForeignKey(c => c.CompanyId);
Run Code Online (Sandbox Code Playgroud)
以下作品:
以下不起作用:
根据 EF 指南和我的经验,我已经在做的事情是正确的:
我尝试将属性设置器更改为公共,但仍然不起作用/解决问题
这没有明显的理由行为不当。我显然错过了一些东西,但我不知道是什么。
使用的 Entitfy Framerowk 版本是 .Net 4.6 上的 6.1.3,通过 NuGet 包安装。
该问题似乎是由 C# 6自动属性功能的新初始化程序引起的。
如果初始化“内联”属性,实体框架会中断一对多关系。
删除初始值设定项,导航属性应该会再次工作。
public class Company
{
public virtual ICollection<BusinessUnit> BusinessUnits { get; protected set; }
public int Id { get; protected set; }
}
public class BusinessUnit
{
public virtual Company Company { get; protected set; }
public int CompanyId { get; protected set; }
public string Description { get; protected set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2476 次 |
| 最近记录: |