У меня есть следующие примеры классов:
public class A {
public Guid Id { get; set; }
public B B { get; set; }
}
public class B {
public Guid Id { get; set; }
public string SomeProperty { get; set; }
}
public class AConfiguration : EntityTypeConfiguration<A> {
public AConfigurations() {
HasOptional(x=> x.B)
.WithRequired();
}
}
Когда я добавляю новый экземпляр A и B, как показано ниже:
var a = new A() {
B = new B() {
SomeProperty = "Some Value"
}
};
context.As.Add(a);
context.SaveChanges();
С учетом этой модели, миграциясоздает таблицу для A с PK Guid, а таблицу для B. B имеет PK, помеченный как FK для A, что соответствует моим потребностям.
Проблема в том, что при нажатии SaveChanges EF пытается вставить B перед вставкой A, что создает исключение FK для базы данных.
Я что-то упустил или это ошибка в EF 6