让我说明错误:
无法将值NULL插入列'Id',表中 'TCCDatabase.dbo.ProfessionalModels';列不允许空值。 INSERT失败。
尝试使用我的EF应用程序创建的数据库将n记录插入数据库时出现此错误。
我认为这是因为我的数据库Id列没有自动递增。
我的问题是:为什么我的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);
}
}
}