gpt4 book ai didi

c# - Entity Framework 创建的主键不会自动递增

转载 作者:行者123 更新时间:2023-12-05 06:45:37 28 4
gpt4 key购买 nike

让我显示错误:

Cannot insert the value NULL into column 'Id', table 'TCCDatabase.dbo.ProfessionalModels'; column does not allow nulls. INSERT fails.

尝试使用我的 EF 应用程序创建的数据库将 n 条记录插入我的数据库时出现此错误。

我认为这是因为我的数据库 Id 列不是自动递增的。

Identity field

我的问题是:为什么我的 Id 列不自动递增?

我的一个模型:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;

namespace TCCApplication.Models
{
public class ProfessionalModel
{
public int Id { get; set; }

public string Name { get; set; }

[Column(TypeName = "DateTime2")]
public DateTime BirthDate { get; set; }
public int PhoneNumber { get; set; }
public string Profession { get; set; }

public UserAddressModel UserAddressModel { get; set; }
public UserAccountModel UserAccountModel { get; set; }

public ProfessionalModel() { }
}
}

我的上下文类:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Linq;
using System.Web;
using TCCApplication.Models;

namespace TCCApplication.EntityFramework
{
public class TCCDatabase : DbContext
{
public DbSet<UserAccountModel> UserAccountContext { get; set; }
public DbSet<ProfessionalModel> ProfessionalContext { get; set; }
public DbSet<UserAddressModel> UserAddressContext { get; set; }

public TCCDatabase()
{}

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<ProfessionalModel>().Property(a => a.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
modelBuilder.Entity<UserAccountModel>().Property(a => a.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
modelBuilder.Entity<UserAddressModel>().Property(a => a.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
}

}
}

最佳答案

基于 this问题,似乎自动递增 ID 不是 EF 的工作,而是数据库的工作。应该增加的列需要设置为标识。

enter image description here

关于c# - Entity Framework 创建的主键不会自动递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22886472/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com