Entity Framework сохраняет данные в однозначных ассоциациях

Я пытаюсь использовать подход сопоставление внешнего ключа для достижения однозначного -одна ассоциация в EF. В моем случае существует связь между пользователем и командой, и мне нужно свойство навигации в каждом из них. Я столкнулся с проблемой при попытке сохранить данные.

Вот как выглядят модели:

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 () , как указано в блоге сообщение, указанное выше:

modelBuilder.Entity()
    .HasRequired(u => u.Team)
    .WithMany()
    .HasForeignKey(u => u.TeamID);

modelBuilder.Entity()
    .HasRequired(t => t.Owner)
    .WithMany()
    .HasForeignKey(t => t.OwnerID)
    .WillCascadeOnDelete(false);

А теперь при добавлении таких данных:

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

я получаю следующую ошибку:

Невозможно определить действительный порядок для зависимых операций. Зависимости может существовать из-за внешнего ключа ограничения, требования модели или значения, сгенерированные хранилищем.

Есть идеи, как решить эту проблему? Я сохраняю данные неправильно?

Заранее спасибо

8
задан Farinha 10 May 2011 в 23:10
поделиться