npgsql和Entity Framework代码首先设置问题

我得到的最新错误是

ERROR: 42P01: relation "dbo.__MigrationHistory" does not exist 

但我确信这只是因为早先没有正确设置。

我目前正在尝试设置entity framework4.4代码首先使用Npgsql 2.0.12,我已经完成了以下操作,它似乎至少现在连接到数据库,但是当我做context.saveChanges()时给我上面的错误;

  • 更新了.net 2.0.50727的machine.config;

  • 将dll添加到项目中

  • 将app.config更改为如下所示;

       
  • 传入的数据如下所示

    public class Animal {[Key] public int Id {get; 组; public string Name {get; 组; } public string描述{get; 组; } public int Age {get; 组; public int NoOfLegs {get; 组; }}

  • 其他所有东西都是通用的现成环境

任何关于我做错了什么或提示或教程的帮助,任何事都会有所帮助。 这只是一个概念certificate,但我不介意让它工作。

抱歉对代码格式化的不良使用,堆栈交换不会让我因为某些原因正确使用它,即使它的格式正确。

Npgsql不支持模式创建,因此您必须手动创建数据库。 然后,为了避免此错误,请在代码中的某处添加此语句(在您的情况下,它可能位于Main()函数的开头):

 Database.SetInitializer(null); 

而不是DataContext使用您的DbContext实现。

我同意iwanek之前的回答。 更具体一点,我喜欢将语句放在OnModelCreating重写方法中,以便在创建上下文时始终调用它。

  public class MyDbContext : DbContext { protected override void OnModelCreating(DbModelBuilder modelBuilder) { Database.SetInitializer(null); } }