у меня есть три таблицы, как следоватьLINQ к столу внешнего ключа в другой таблице
- курса (идентификатор, имя, по убыванию)
- студентов (номер, имя, courceId)
- пользователей (идентификатор, имя, courseId)
Мне нужно, чтобы получить студент курса, который текущий пользователь, присвоенные.
Моя проблема заключается в том, как получить таблицы записей, которые имеют внешний ключ для таблицы Я сделал следующее, однако пример кода посещает DB дважды. Есть ли способ сделать это одним посещением.
var userId = User.Identity.GetUserId();
var courseId = _context.Users
.Where(u => u.Id == userId)
.Select(u => u.CourseId)
.Single();
var students = _context.Students
.Where(s => s.CourseId == courseId)
.ToList();
так, код первой, модель первая, или базы данных в первую очередь? если вы правильно настроили 'User' и' Students', вы могли бы называть '_context.Users.Include (« Student »)' для ленивых нагрузок. Отношение Student (будь то два или три или только один запрос до ** entity framework **, мы ничего не можем сделать, но в любом случае это будет эффективно) –
Просьба сделать хотя бы некоторые ** минимальные ** исследования, прежде чем вы ставите вопрос. Введите свой заголовок [в google] (https://www.google.com/#q=LINQ+to+table+by+foreign+key+in+another+table) и проверьте первый результат. – Sefe
Возможный дубликат [Запросить таблицу с использованием свойств навигации внешнего ключа в LINQ с C#] (http://stackoverflow.com/questions/6764013/query-a-table-by-using-foreign-key-navigation-properties- in-linq-with-c-sharp) – Sefe