繁体   English   中英

UPDATE-DATABASE返回“值不能为null。 参数名称:set'

[英]UPDATE-DATABASE Returns 'Value cannot be null. Parameter name: set'

我正在尝试将数据播种到我的数据库中,但我不断收到错误消息

 System.ArgumentNullException: Value cannot be null.
 Parameter name: set
 at System.Data.Entity.Utilities.Check.NotNull[T](T value, String parameterName)
at System.Data.Entity.Migrations.DbSetMigrationsExtensions.AddOrUpdate[TEntity](IDbSet`1 set, TEntity[] entities)
at kesws.Migrations.Configuration.Seed(kesws_context context) in C:\Users\JNyingi\source\repos\kesws\Migrations\Configuration.cs:line 83
at System.Data.Entity.Migrations.DbMigrationsConfiguration`1.OnSeed(DbContext context)
at System.Data.Entity.Migrations.DbMigrator.SeedDatabase()
at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.SeedDatabase()
at System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable`1 pendingMigrations, String targetMigrationId, String lastMigrationId)
at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.Upgrade(IEnumerable`1 pendingMigrations, String targetMigrationId, String lastMigrationId)
at System.Data.Entity.Migrations.DbMigrator.UpdateInternal(String targetMigration)
at System.Data.Entity.Migrations.DbMigrator.<>c__DisplayClassc.<Update>b__b()
at System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists(Action mustSucceedToKeepDatabase)
at System.Data.Entity.Migrations.Infrastructure.MigratorBase.EnsureDatabaseExists(Action mustSucceedToKeepDatabase)
at System.Data.Entity.Migrations.DbMigrator.Update(String targetMigration)
at System.Data.Entity.Migrations.Infrastructure.MigratorBase.Update(String targetMigration)
at System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.Run()
at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
at System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner)
at System.Data.Entity.Migrations.Design.ToolingFacade.Update(String targetMigration, Boolean force)
at System.Data.Entity.Migrations.UpdateDatabaseCommand.<>c__DisplayClass2.<.ctor>b__0()
at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)
Value cannot be null.
Parameter name: set

这是班上我想播种的

public class MSG_Header
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid Id { get; set; }

    public string MSGID { get; set; }

    public string RefNo { get; set; }

    public Int16 MSG_FUNC { get; set; }

    public string Sender { get; set; }

    public string Receiver { get; set; }

    public string Version_No { get; set; }

    public string Doc_No { get; set; }

    public string Doc_Group { get; set; }

    public DateTime MSG_Date { get; set; }

    public string Token { get; set; }

}

这是我的种子初始化器

   var headers = new MSG_Header
        {
            MSGID = "u64j515g5f5",
            RefNo = "f9b5f6b5fb6f52b",
            MSG_FUNC = 56,
            Sender = "Austin Evans",
            Receiver = "Linus Tech",
            Version_No = "h26h",
            Doc_No = "g6h1j6h1h6n1h",
            Doc_Group = "sssa",
            MSG_Date = DateTime.Now.AddMonths(-1),
            Token = "wtr6t2r6r2662j64yj5jmjju8i"
        };
        context.MSG_Header.AddOrUpdate(headers);
        context.SaveChanges();

最后我的上下文

  public class kesws_context: DbContext
{
    public kesws_context(): base("kesws")
    {

    }

    public DbSet<MSG_Header> MSG_Header { get; }


    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

        modelBuilder.Entity<MSG_Header>()
            .HasKey(x => x.Id);
    }
}

我希望数据不会出现任何问题。 它可以正确创建表,但无法播种数据。 我正在使用EF Version 6.1.3 我希望得到解决此问题的帮助,因为它被卡住了

你缺少了二传手MSG_Header财产DbContext ,它应该是这样的;

public class kesws_context: DbContext
{

    public DbSet<MSG_Header> MSG_Header { get; set; }
    {...}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM