EntityFramework 7添加实体时出错

时间:2015-07-01 15:50:07

标签: c# entity-framework

尝试将新实体添加到Entity Framework数据上下文时,我收到以下错误。

  

发生了'System.Data.SqlClient.SqlException'类型的异常   System.Data.dll但未在用户代码中处理

     

其他信息:无效的对象名称'DefaultSequence'。

我不知道DefaultSequence来自哪里。当执行add方法时,我可以看到它查询SQL服务器类似于从DefaultSequence中选择下一个结果(我现在没有在我面前,但类似的是执行的查询。

以下是我用于添加实体的代码,错误发生在.Add行:

public IActivityCode Create(ActivityCode item)
    {
        data.ActivityCode.Add(item);
        data.SaveChanges();

        return Get(item.Id);
    }

以下是DbContext的代码

public class MyDbContext : DbContext
{

    public DbSet<ActivityCode> ActivityCode { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer(Startup.Configuration.Get("Data:DefaultConnection:ConnectionString"));
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<ActivityCode>().ForSqlServer((builder => builder.Table("ActivityCode", "Payments")));

        base.OnModelCreating(modelBuilder);
    }
}

1 个答案:

答案 0 :(得分:0)

我需要执行以下操作才能使其正常工作。评论Jurgen很接近,但没有发布,但如果你想发布答案我也会接受这个答案。

    modelBuilder.Entity<ActivityCode>().ForSqlServer(builder => builder.Table("ActivityCode", "Payments"));
    modelBuilder.Entity<EquityActivity>().ForSqlServer(builder => builder.Table("EquityActivity", "Equity"));
    modelBuilder.ForSqlServer().UseIdentity();