我已经使用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; }
}