Почему работает мое приложение Entity Framework? - PullRequest
1 голос
/ 31 октября 2011

Для быстрого доступа к этому, модели:

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?

1 Ответ

0 голосов
/ 25 ноября 2011

Взгляните на Настройка отношений с помощью Fluent API (Code First) .

Прокрутите вниз до Настройка отношений «один к одному или один» .

...