Добавление объекта Entity с внешним ключом - PullRequest
0 голосов
/ 11 января 2011

В базе данных у меня есть 2 таблицы:
Статья: ID | Название | SectionID
Раздел: ID | * 1003 имя раздела * (все идентификаторы установлены как увеличение идентификатора)

Я хочу добавить новую статью с определенным SectionID (который выходит из базы данных).

Я устал это:

Article art = new Article
{
    Title = "title"
};

art.Section.SectionID = 0;


if (art.EntityState == EntityState.Detached)
{
   Articlerctx.AddToArticles(art);
}

Я получаю ошибку на art.Section.SectionID = 0;

Ссылка на объект не установлена ​​на экземпляр объекта

Нужно ли создавать полный объект только для одного поля int ???

Ответы [ 3 ]

0 голосов
/ 11 января 2011
art.SectionReference.EntityKey = new EntityKey("EntityModelName.EntitySetName", "IdFieldName", 0);
0 голосов
/ 11 января 2011

В EF 4 вы можете установить флажок в мастере обновления модели, чтобы включить поля внешнего ключа в модель.Если вы сделаете это, вы можете изменить свой код на:

Article art = new Article
{
    Title = "title"
};

art.SectionID = 0;

if (art.EntityState == EntityState.Detached)
{
   Articlerctx.AddToArticles(art);
}
0 голосов
/ 11 января 2011

Конечно, вы можете получить объект из базы данных (извините, я не видел "существует в базе данных").

просто возьмите объект Section из контекста и назначьте его.

art.Section = context.Section.FirstOrDefault(s => s.ID == 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...