代码之家  ›  专栏  ›  技术社区  ›  The Pax Bisonica

缺少RelationalTypeMapping实体框架核心

  •  0
  • The Pax Bisonica  · 技术社区  · 6 年前

    我已经使用fluent model builder手动设置了实体框架映射,当我查询时,一切都很好,但是当尝试创建实体时,这就是我得到的:

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

    这里是stacktrace:


    在Microsoft.EntityFrameworkCore.Storage.Internal.TypeMappedRelationalParameter..ctor(字符串不变量名,字符串名,RelationalTypeMapping RelationalTypeMapping,可为空 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 CancellationToken) 4 operation, Func 4验证成功,CancellationToken CancellationToken) 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.创建异步(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 回复  |  直到 6 年前