Для быстрого доступа к этому, модели:
public class foo{
public int ID;
[Required]
public bla bla;
}
public class bla{
public int ID;
public string test
}
В принципе, это работает нормально и, как и ожидалось.
Мое приложение является нормальным приложением - у меня есть списокbla
, каждый из которых связан с foo
.
У меня есть страница со списком Foos, и кто-то может нажать на нее, которая затем покажет каждый бла, связанный сthat Foo.
Код имеет переданный ему идентификатор Foo и имеет вид:
bla bla = db.bla.Where(x=>x.id == id);
db.foo.Where(x=>x.bla == bla);
Однако я действительно хотел поэкспериментировать с FluentAPI, и я использовал следующее:
modelBuilder.Entity<foo>()
.HasRequired(x => x.bla)
.WithOptional()
.WillCascadeOnDelete();
Мне кажется, что, глядя на схему базы данных, я случайно создал отношение один к одному, поскольку столбец bla_id
не существует.Однако что я действительно не понимаю, так это то, как мое приложение продолжает работать без изменений?(все может быть, я могу создать не более одного foo на бла).
Я не очень понимаю, почему WithOptional
подразумевает один к одному - это действительно действует мне на нервы как подсказкидля разных опций (и MSDN) подразумевается очень похожая, если не одна и та же информация между опциями.Из-за этого очень трудно учиться.
Кроме того, правильно ли я считаю, что FluentAPI полностью перезаписывает аннотации моделей?
Наконец, я немного боролся здесь.Кто-нибудь знает шпаргалку / список для FluentAPI?