C# 将新实体添加到数据库中会得到;标识“插入设置为关闭”;错误

C# 将新实体添加到数据库中会得到;标识“插入设置为关闭”;错误,c#,sql,entity-framework,.net-core,automapper,C#,Sql,Entity Framework,.net Core,Automapper,我创建一个新的域实体,将其映射到持久性实体并将其保存到数据库。这给了我一个sql错误,如下所示 SqlException:当identity\u insert设置为OFF时,无法在表“DefaultPageContent”中为identity列插入显式值 我检查了表上的标识,这是真的,我检查了设计器,所有表的标识都是真的,如下所示: modelBuilder.Entity("Namespace.Models.PageContent", b => { b.Proper

我创建一个新的域实体,将其映射到持久性实体并将其保存到数据库。这给了我一个sql错误,如下所示

SqlException:当identity\u insert设置为OFF时,无法在表“DefaultPageContent”中为identity列插入显式值

我检查了表上的标识,这是真的,我检查了设计器,所有表的标识都是真的,如下所示:

modelBuilder.Entity("Namespace.Models.PageContent", b =>
    {
        b.Property<int>("IdPageContent")
            .ValueGeneratedOnAdd()
            .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
    });
域模型和持久性模型上的Id属性,并分别

如果数据库中不存在页面内容,则在此处创建页面内容

private async Task UpdateCustomerPageContent(UpdateCustomerPageContentCommand request, CancellationToken cancellationToken)
{
    var customerPage = await _unitOfWork.CustomerPages.FindById(request.CustomerPageId);
    var content =
        customerPage.PageContent.FirstOrDefault(x => x.IdOrganization.Equals(request.CustomerOrganizationId));
    var settings =
        customerPage.CustomerPageSettings.First(x => x.IdOrganization.Equals(request.CustomerOrganizationId));
    settings.UseDefaultContent = false;
    if (content == null)
    {
        content = new Domain.PageContent();
        content.IdOrganization = request.CustomerOrganizationId;
        content.LastUpdatedBy = "noname"; //TODO: Getfrom UPN Claim
        content.CustomerPage = customerPage;
    }

    content.HtmlContent = request.HtmlString;
    await _unitOfWork.PageContent.InsertOrUpdate(content, cancellationToken);
    await _unitOfWork.SaveChangesAsync(cancellationToken);
}
这是insertOrupdate方法,映射也在其中发生

public async Task InsertOrUpdate(Domain.PageContent pageContent, CancellationToken cancellationToken = default)
{
    var entity = _mapper.Map<Models.PageContent>(pageContent);
    if (pageContent.IdPageContent == default)
    {
        await _context.PageContent.AddAsync(entity, cancellationToken);
    }
    else
    {
        _context.Entry(entity).State = EntityState.Modified;
    }
}
这里是简单的映射配置,考虑到一切都是相同的

public PageContentProfile()
{
    CreateMap<Models.PageContent, Domain.PageContent>();
    CreateMap<Domain.PageContent, Models.PageContent>();
}
publicpagecontentprofile()
{
CreateMap();
CreateMap();
}

由于标识为true,因此创建和添加新实体不应出现错误。两种型号上的Id都是“0”,如果这意味着什么的话。

例外情况提到表
DefaultPageContent
。它是存储
PageContent
的地方还是不同的实体?它是同一个地方,很抱歉造成混淆。如果您将断点设置为此处:
If(PageContent.IdPageContent==default)
实体。IdPageContent
此处也是0?异常会提到表
DefaultPageContent
。它是存储
PageContent
的地方还是不同的实体?它是同一个地方,很抱歉造成混淆。如果将断点设置为此处:
If(PageContent.IdPageContent==默认值)
Entity.IdPageContent
这里也是0?
public class PageContent
{
    public int IdPageContent { get; set; }
    public long IdOrganization { get; set; }
    public string HtmlContent { get; set; }
    public string LastUpdatedBy { get; set; }
    public DateTime CreatedDate { get; set; }
    public DateTime UpdatedDate { get; set; }

    public CustomerPage CustomerPage { get; set; }
}
public PageContentProfile()
{
    CreateMap<Models.PageContent, Domain.PageContent>();
    CreateMap<Domain.PageContent, Models.PageContent>();
}