>问题
我在将 beta7 应用程序升级到 beta8 时遇到问题。我遇到了 50 多个错误的问题,但现在只得到了 EF7。堆栈溢出的朋友和用户建议我专门问这个问题。
实体框架错误
错误 CS1061"实体类型生成器<单元>"不包含"集合"的定义,并且找不到接受类型为"实体类型生成器<单位>"的第一个参数的扩展方法"集合"(是否缺少 using 指令或程序集引用? 样本项目.DNX 4.5.1单位>单元>
我也在Reference
上遇到同样的错误。
我的 DbContext.cs 文件中的 OnModelCreating(ModelBuilder builder)
方法中有以下代码。
builder.Entity<Unit>(entity =>
{
entity.HasKey(unit => unit.UnitId);
entity.Collection(unit => unit.UnitBins).InverseReference(bin => bin.BinUnit)
.ForeignKey(bin => bin.UnitId).Required(true);
entity.Reference(u => u.RefUnitType).InverseReference().ForeignKey<Unit> (u => u.RefUnitTypeId).Required();
});
问题是实体构建器似乎没有定义 Collection
和 Reference
.这大约是第二次或第三次在EF中重构这种逻辑,所以我对如何重写上面的逻辑感到非常困惑。
尝试:
我尝试了以下方法:
- 我尝试在VS15中使用智能感知,但没有发现类似的内容
- 我已经搜索了 EF7 问题 GitHub 页面,但没有看到任何内容
- 我也尝试
dnu restore
以确保升级不会对我的project.json锁造成奇怪的影响。 - 使用
entity.HasKey()
代替entity.Key()
,但没有找到其他方法可与其他方法相媲美?
现在 beta8 功能已经完成,我可能会重写我项目的重要部分。但是,现在我需要解决这些错误,以便我可以再次编译项目。任何帮助,协助和建议将不胜感激。
Collection => HasMany
Reference => HasOne
InverseReference => WithOne