Я пытаюсь заполнить мою базу данных тестовыми данными с помощью IDatabaseIntialiser
следующим образом:
protected override void Seed(BlogDataContext context)
{
//
var post = context.Posts.Create();
post.Title = "My Life On Twitter";
//
// Set tags
post.Tags.Add(aspnetTag); // NullRefException
post.Tags.Add(razorTag);
Сущность Post выглядит так: это:
public class Post
{
// ...
public virtual ICollection Tags { get; set; }
Полные объекты в Bitbucket: Сообщение и Тег . Весь код находится по адресу http://code.dantup.com/blog
Однако post.Tags
имеет значение null, поэтому это не работает. Первоначально я создавал сообщение как new Post ()
, однако, поскольку я вызываю метод Create
, предоставляемый EF, почему коллекция не инициализируется?
Это кажется неуклюжим для создания экземпляра моей собственной коллекции здесь, и если я сделаю это в конструкторе, предположительно каждый раз, когда я загружаю объект из EF, он Я создам коллекцию в конструкторе, а затем перезапишу ее коллекцией, содержащей фактические данные из БД?
Есть ли способ указать EF создать мне объект, включая коллекции / прокси для моих ICollections
(предполагая, что ICollection
- правильный выбор)?
Edit : context.Configuration.ProxyCreationEnabled
имеет значение true (по умолчанию), , похоже, существует по этой причине ?