2011-10-31 2 views
1

먼저 내가하는 일을 보여 드리겠습니다. ASP.NET MVC 3의 내 프로젝트.ASP.NET MVC 3, SQL Server

이것은 비즈니스 용 테이블의 모델입니다.

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(); 

나는 다음과 같은 오류 얻을 : 데이터베이스 열 신원 사양 사업에서

Cannot insert explicit value for identity column in table 'Business' when IDENTITY_INSERT is set to OFF.

선택한

Identity Yes입니다
[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; } 
} 

내가 정보를 추가 할

.

누군가 무엇을 해야할지 말할 수 있습니다.

답변

0

BusinessId은 Sql Server (which Identity 의미)에서 자동 생성되도록 지정하지 않았으므로 비어 있거나 null 일 수 없습니다. 당신이 당신의 데이터베이스를 생성하는 코드 먼저 사용하고 있기 때문에

단지에 변경 :

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

당신이 말한대로. 이제 다음 오류가 표시됩니다. –

+0

ReferentialConstraint의 종속 속성이 상점 생성 열에 매핑됩니다. 열 : 'BusinessId' –

+0

http://stackoverflow.com/questions/4035834/cant-insert-data-to-with-ef-with-master-detail-relationship – jgauffin

1

당신이 당신의 EDMX 모델에서, 당신의 BusinessId가 데이터베이스에 의해 처리되도록 설정되어 있는지 확인하십시오 수 (재산 StoreGeneratedPattern = Identity) ?? 또한 : 이 기본 키가 nullable (long?) 인 이유 - 전혀 이해가되지 않습니다. 기본 키 은 절대로이어야합니다.

enter image description here

0

재정의 DbContext에서 OnModelCreating과 유창함 API 다음 그 안에 추가 : 내가 한

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