缺少RelationalTypeMapping实体框架核心

时间:2018-09-08 18:42:13

标签: c# entity-framework-core

我已经使用流利的模型构建器手动设置了Entity Framework映射,并且在查询时一切正常,但是在尝试创建实体时,这是我得到的:

  

值不能为null。参数名称:relationalTypeMapping

这是堆栈跟踪:

  

在Microsoft.EntityFrameworkCore.Utilities.Check.NotNull [T](T值,字符串parameterName)
  在Microsoft.EntityFrameworkCore.Storage.Internal.TypeMappedRelationalParameter..ctor(字符串invariantName,字符串名称,RelationalTypeMapping,relationalTypeMapping,Nullable 1 nullable)
at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalParameterBuilder.AddParameter(String invariantName, String name, IProperty property)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommandBuilderExtensions.AddParameter(IRelationalCommandBuilder commandBuilder, String invariantName, String name, IProperty property) at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.CreateStoreCommand() at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(DbContext _, ValueTuple
2个参数,CancellationToken cancelToken)中          在Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.ExecuteAsync [TState,TResult](TState状态,Func 4 operation, Func 4验证成功,CancellationToken cancelToken)处          在Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IReadOnlyList 1 entriesToSave, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) at FastTrack.EntityFramework.Services.EntityFrameworkService 3.CreateAsync(TDto dto)

这是我的映射代码:

   builder.Entity(typeof(Page), b =>
            {
                b.HasOne(typeof(Site))
                    .WithMany()
                    .HasForeignKey("SiteId")
                    .IsRequired();
            });

            builder.Entity<Site>()
                .HasMany(x => x.Pages)
                .WithOne(x => x.Site)
                .HasForeignKey("SiteId")
                .IsRequired();

以下是实体:

  public class Site
    {
        public int Id {get; set;}
        public string Name {get; set;}
        public IList<Page> Pages { get; set; }
        public string Domain { get; set; }
    }


   public class Page
    {
        public int Id {get; set;}
        public string Name {get; set;}
        public IList<PageSelector> PageSelectors { get; set; }
        public string Path { get; set; }
        public Site Site { get; set; }
        [ForeignKey("Site")]
        public int SiteId { get; set; }
    }

什么可能导致这种情况发生?映射似乎已正确设置,并且一切正常,直到我要向数据库中插入内容为止。

0 个答案:

没有答案