Entity Framework: сохранение записи со значениями FK и НЕ поиск связей - PullRequest
3 голосов
/ 05 мая 2009

У меня есть таблица «Расходы», которая содержит значение FK для таблицы «ExpenseType». Прямо сейчас, если я хочу сохранить новый расход, я сначала получаю значение int FK, выполняю поиск в таблице ExpenseType и назначаю объект для объекта расхода. Например:

//create new expense
var e = new Expense();

//lookup the associated expense type
var et = context.ExpenseTypeSet.First(e -> e.expenseTypeID == 10);

//set field values
e.expenseName = "Some name";
e.expenseType = et;

//save
context.Save();

Есть ли способ создания / вставки записи без предварительного поиска в таблице FK? Поиск не требуется и вызывает дополнительные попадания в базу данных. Я уже знаю идентификатор FK ... так есть ли способ просто установить идентификатор и позволить ему быть счастливым?

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

1 Ответ

4 голосов
/ 05 мая 2009

Вы также можете сделать это с помощью EntityReference:

e.expenseTypeReference.EntityKey 
   = new EntityKey("MyContainer.expenseTypeSet", "expenseTypeID", 10);

У меня есть серия советов , которая охватывает эту и другие проблемы:

В частности, вы, возможно, захотите взглянуть на это Совет 7 , в котором говорится о создании поддельных свойств для FK. Вам не нужно заходить так далеко, если вы этого не хотите, но принципы полезны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...