2012-12-30 57 views
2

我有以下型號: EDMX違反了多重性約束。 DB頭EF 4.1

在我運行下面添加一個新用戶:

using (var context = new CamelotDB()) 
    { 
     Console.WriteLine("Creating Test User"); 
     DomainEntity userToAdd = new DomainEntity() 
     { 
      EntityName = "Test User", 
      EntityType = DomainEntity.eEntityType.User, 
      EntityCreationDate = DateTime.Now, 
      EntityLastUpdateDate = DateTime.Now, 
      EntityCreatorUserID = 0, 
      Creator = context.DomainEntities.Find(0), 
      EntityUpdaterUserID = 0, 
      Updater = context.DomainEntities.Find(0), 
      EntityParentID = null, 
      UserDetails = new User() 
      { 
       Username = "TestUser", 
       Password = "123", 
       Email = "[email protected]", 
       FirstName = "Test", 
       LastName = "User", 
       Phone = "123456789" 
      } 
     }; 

     Console.WriteLine("Adding user to Database..."); 
     userToAdd = context.DomainEntities.Add(userToAdd); 
     context.SaveChanges(); 

    } 

而且我得到以下錯誤: 違反了多重約束。關係'CamelotShiftManagement.DAL.DomainEnttyFK1'的角色'用戶'具有多重性1或0..1。![輸入圖像描述]

回答

1

問題不在於域實體引用的用戶實體。 問題是創建者和更新者的自我引用。 它們都不是可空的...所以我不得不添加一個實際的ID號到屬性中,並且需要將實際的用戶實體放置在創建者和更新者的導航屬性中。

相關問題