实体框架 7 ASP.NET Beta 8 中缺少键、集合、引用定义的错误



>问题

我在将 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();
            });

问题是实体构建器似乎没有定义 CollectionReference .这大约是第二次或第三次在EF中重构这种逻辑,所以我对如何重写上面的逻辑感到非常困惑。

尝试:

我尝试了以下方法:

  • 我尝试在VS15中使用智能感知,但没有发现类似的内容
  • 我已经搜索了 EF7 问题 GitHub 页面,但没有看到任何内容
  • 我也尝试dnu restore以确保升级不会对我的project.json锁造成奇怪的影响。
  • 使用entity.HasKey()代替entity.Key(),但没有找到其他方法可与其他方法相媲美?

现在 beta8 功能已经完成,我可能会重写我项目的重要部分。但是,现在我需要解决这些错误,以便我可以再次编译项目。任何帮助,协助和建议将不胜感激。

Collection => HasMany
Reference => HasOne
InverseReference => WithOne

最新更新