Структура сущности:Работа с ФК (почему они скрываются?)

StackOverflow https://stackoverflow.com/questions/281454

Вопрос

Прежде всего, давайте определим несколько таблиц:

Таблица Users будет хранить информацию о пользователе:

Users
- UserID (int, PK)
- ...

UserTasks — это таблица, в которой хранится задача, связанная с пользователем:

UserTasks
- userID (int, FK to Users table)
- taskName (varchar)

Когда я создаю таблицу UserTasks с помощью ADO Entity Framework, я получаю класс, который выглядит следующим образом:

Пользовательские задачи
- имя задачи (строка)
- Пользователи (коллекция объектов «Пользователи»)

Примечание:В таблице UserTasks не создается идентификатор пользователя.Итак, давайте теперь предположим, что мне нужно вставить новую пользовательскую задачу...как мне это сделать?У меня нет доступа к полю userID FK, поэтому мой единственный вариант — выполнить поиск и заполнить объект «Пользователи», а затем передать его в мой объект задачи, например:

//get the user we are interested in 
var user = (from u in context.Users
           where u.userID == 2
           select u).FirstOrDefault();  

//create the new task
UserTasks newTask = new UserTasks();
newTask.taskName = "New Task";
newTask.User = user;

Проблема с вышеизложенным заключается в том, что я делаю дополнительный и ненужный вызов базы данных для заполнения моего пользовательского объекта.Можно ли каким-то образом создать новое сопоставление с моим полем userID и при этом сохранить объект User?

Спасибо

--Райан

Это было полезно?

Решение

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top