【问题标题】:EF code first with existing database causing error known to manyEF 代码首先使用现有数据库导致许多人都知道的错误
【发布时间】:2017-11-26 23:41:02
【问题描述】:

我有现有的数据库。然后出现了对更多表的新需求,因此我创建了模型并使用代码优先的方法为现有数据库生成表。

但是当我运行命令时

Enable-Migrations -ContextTypeName ListHell.CODE.flagen -force

我收到错误

创建 DbModelBuilder 或从 DbContext 编写 EDMX 不支持使用 Database First 或 Model First 创建的。 EDMX 可以 只能从不使用 现有的 DbCompiledModel。

我已经在 SO 上检查了所有与它相关的答案,但对我的情况都没有用

我的 dbcontext 类

  public partial class flagen:DbContext
{
    public flagen() : base("name=LH_newEntities")
    {
    }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }

    public virtual DbSet<flag> flags { get; set; }
}

感谢帮助

【问题讨论】:

  • 什么答案?为什么它们没用?如果错误消息是准确的,则没有其他答案可以给出。您是否在同一个项目中混合了 Db-First 和 Code-First 上下文?
  • @PanagiotisKanavos 一个答案说删除 _migrationhistory 并删除迁移文件夹,然后再试一次我没有结果。其他完全一样。
  • 该错误与模型优先上下文有关。不是移民史。 是否您有模型优先或数据库优先的上下文?错误是否准确?为什么你的班级部分
  • @PanagiotisKanavos 我有现有的数据库并首先在问题中使用代码
  • 我敢打赌 flagen 也是一个 db-first 上下文,因为它有 partial 关键字

标签: c# .net entity-framework ef-code-first


【解决方案1】:

我正在共享 codefirst 和 dbfirst 的连接字符串。原来这行不通。我创建了新的连接字符串,它的工作很顺利。解决了

【讨论】:

    猜你喜欢
    • 2016-06-06
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 2013-10-11
    相关资源
    最近更新 更多