Sql server ASP.NET MVC 3,SQL Server

Sql server ASP.NET MVC 3,SQL Server,sql-server,database,asp.net-mvc-3,Sql Server,Database,Asp.net Mvc 3,首先,我将向你展示我所做的事情,而且确实有。我在ASP.NETMVC3中的项目 这是餐桌业务的模式 [Table("Business")] public class Business { [Key] public long? BusinessId { get; set; } public Int32 LegalTypeId { get; set; } public Int16 BusinessTypeId { get; set; } public Int

首先,我将向你展示我所做的事情,而且确实有。我在ASP.NETMVC3中的项目

这是餐桌业务的模式

[Table("Business")]
public class Business
{
    [Key]
    public long? BusinessId { get; set; }

    public Int32 LegalTypeId { get; set; }
    public Int16 BusinessTypeId { get; set; }
    public Int64 OwnerId { get; set; }
    public Int32 MainIndustryFieldId { get; set; }
    public String NameNative { get; set; }
    public String NameEnglish { get; set; }
    public Byte[] Logo { get; set; }
    public DateTime CreateDate { get; set; }

    public virtual User Owner { get; set; }//It is Forign key with user table
}

[Table("User")]
public class User
{
    [Key]
    public Int64 UserId { get; set; }

    public String UserName { get; set; }
    public String LoweredUserName { get; set; }
    public String FirstName { get; set; }
    public String LastName { get; set; }
    public String Email { get; set; }
    public String LoweredEmail { get; set; }
    public String Password { get; set; }
    public String PasswordSalt { get; set; }
    public String PasswordQuestion { get; set; }
    public String PasswordAnswer { get; set; }
    public Boolean IsApproved { get; set; }
    public Boolean IsLocked { get; set; }
    public DateTime LastActivityDate { get; set; }
    public DateTime LastLoginDate { get; set; }
    public DateTime CreateDate { get; set; }

    public virtual Business Bussines { get; set; }
}
当我要添加信息时:

user.Business = new Business
{
    OwnerId = user.UserId,
    LegalTypeId = business.LegalTypeId,
    BusinessTypeId = business.BusinessTypeId,
    MainIndustryFieldId = business.MainIndustryFieldId,
    NameNative = business.NameNative,
    NameEnglish = business.NameEnglish,
    Logo = business.Logo,
    CreateDate = DateTime.Now
};
ctx.SaveChanges();
我得到以下错误:

无法在表“Business”中插入标识列的显式值 当IDENTITY_INSERT设置为OFF时

在数据库列标识规范中,业务选择的是
identity Yes


有人可以告诉你该怎么做。

BusinessId
不能为空/空,因为你没有指定它应该由Sql Server自动生成(这意味着
Identity
的意思)

由于您首先使用代码生成数据库,只需更改为:

[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long? BusinessId { get; set; }

BusinessId
不能为空/null,因为您尚未指定它应由Sql Server自动生成(这意味着
Identity
的意思)

由于您首先使用代码生成数据库,只需更改为:

[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long? BusinessId { get; set; }

您能否确保在EDMX模型中,您的
BusinessId
设置为由数据库处理(属性
StoreGeneratedPattern=Identity
)??另外:为什么您的主键可以为空(
长?
)-毫无意义。您的主键不得为空


您能否确保在EDMX模型中,您的
BusinessId
设置为由数据库处理(属性
StoreGeneratedPattern=Identity
)??另外:为什么您的主键可以为空(
长?
)-毫无意义。您的主键不得为空


覆盖DbContext中的模型创建,并在其中添加以下Fluent API:

modelBuilder.Entity<Business>().HasRequired(m => m.Address).WithRequiredPrincipal(m => m.Business).WillCascadeOnDelete(true);
modelBuilder.Entity().HasRequired(m=>m.Address)。with required principal(m=>m.Business)。WillCascadeOnDelete(true);

覆盖DbContext中的模型创建,并在其中添加以下Fluent API:

modelBuilder.Entity<Business>().HasRequired(m => m.Address).WithRequiredPrincipal(m => m.Business).WillCascadeOnDelete(true);
modelBuilder.Entity().HasRequired(m=>m.Address)。with required principal(m=>m.Business)。WillCascadeOnDelete(true);

引用约束中的依赖属性映射到存储生成的列。列:“BusinessId”引用约束中的依赖属性映射到存储生成的列。专栏:“BusinessId”