foreign key association 접근 방식을 사용하여 EF에서 일대일 연결을 얻으려고합니다. 내 경우에는 사용자와 팀 사이에 연관성이 있으며 각각의 탐색 속성이 필요합니다. 데이터를 저장하려고 할 때 문제가 발생했습니다. Entity Framework에서 일대일 연결로 데이터 저장
이
은 모델이 어떻게 생겼는지 : 같은 데이터를 추가 할 때 지금modelBuilder.Entity<User>()
.HasRequired(u => u.Team)
.WithMany()
.HasForeignKey(u => u.TeamID);
modelBuilder.Entity<Team>()
.HasRequired(t => t.Owner)
.WithMany()
.HasForeignKey(t => t.OwnerID)
.WillCascadeOnDelete(false);
그리고 :
public class Team
{
public int ID { get; set; }
public string Name { get; set; }
public int OwnerID { get; set; }
public virtual User Owner { get; set; }
}
public class User
{
public int ID { get; set; }
public string UserName { get; set; }
public int TeamID { get; set; }
public virtual Team Team { get; set; }
}
내가 위에 언급 된 블로그 게시물의 지침에 따라
DbContext
OnModelCreating()
이러한 비트를 추가 이 :
User u = new User();
u.UserName = "farinha";
Team t = new Team("Flour Power");
u.Team = t;
t.Owner = u;
context.Users.Add(u);
context.Teams.Add(t);
context.SaveChanges();
심지어
User u = new User();
u.UserName = "farinha";
u.Team = new Team("Flour Power");
context.Users.Add(u);
context.SaveChanges();
나는 다음과 같은 오류 받고 있어요 :
Unable to determine a valid ordering for dependent operations. Dependencies may exist due to foreign key constraints, model requirements, or store-generated values.
이 문제를 해결하는 방법에 대한 어떤 생각을? 데이터를 잘못된 방식으로 저장하고 있습니까? 사전
@ ladislav-mrnka 이로 인해 'NULL'값을 'TeamID'열에 삽입 할 수 없으며 테이블 'DeuceHigh.dbo.User'; 열이 널을 허용하지 않습니다. INSERT가 실패합니다. 성명서가 종료되었습니다. " – Farinha
@Farinha 모델이 변경되었으므로 데이터베이스 테이블도 업데이트 되었습니까? – DDiVita
@Farinha : 이것은 데이터베이스 수준 오류로, User 테이블의 TeamID가 여전히 Null을 허용하지 않음을 의미합니다. 데이터베이스를 다시 작성하거나 수정하지 않았습니다. –