Сначала код Entity Framework: почему моя коллекция не создана? - PullRequest
2 голосов
/ 26 марта 2011

У меня есть некоторый класс myDB, который наследует от DbContext, класс содержит следующий член:

public DbSet<Zoo> mAllZoos { get; set; }

класс Zoo выглядит так:

public class Zoo
{
    public string Name { get; set; }
    public IEnumerable<Animal> Animals { get; set; }
    public int ZooSize { get; set; }
    public int ID { get; set; }
}

есть "Animal""класс, который вообще не релевантен, но он содержит" ID ".

когда я прошу его создать базу данных из моих классов, он создает таблицу с именем Animal для моих животных и таблицу Zoo для моихzoos ..

В таблице зоопарка есть только поля «Размер» и «Имя». В таблице животных есть ID и другие свойства, но нет ссылки на зоопарк.

Суть в том, что животных в зоопарках нет, поэтому я не могу спасти, какое животное в каком зоопарке ..

Что я сделал не так?И как мне это исправить.

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

1 Ответ

4 голосов
/ 26 марта 2011

Я считаю, что вам нужно объявить Животное DbSet и в вашем контексте

public DbSet<Animal> Animals { get; set; }

Есть ли у класса животных свойство ID или хотя бы свойство, помеченное KeyAttribute? Entity Framework будет использовать этот идентификатор (или ключ) для создания отношения Foreign Key между таблицами.

Кстати, вам нужно пометить свойство Animals в классе Zoo как virtual, если вы хотите, чтобы Lazy Loading работала:

public virtual IEnumerable<Animal> Animals { get; set; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...