2013-04-24 2 views
0

Сначала мы создали базу данных sql sql, используя EF-код. Предположим, у нас есть 3 сущности/таблицы. Учащиеся, классы, учителя. Мы хотели бы реализовать такой метод: T GetEntity (ket int), который получает объект по ключу от одной из таблиц accourding to T. Возможно ли вообще? TX TalПолучить объекты из базы данных с использованием дженериков и EF

+0

Отличный ответ, спасибо. У вас также есть идея: «T GetEntity (строковое свойство, строковое значение)», которое находит первое значение, где T.Property = значение. Может быть, у вас есть лучшее представление о том, как реализовать универсальную функцию, которая получает объекты по имени свойства и его значение. – tal

ответ

2

Вы ищете метод Find.

var student = context.Set<Student>().Find(1); 
+1

помните, что сначала найдите локальный контекст. Если вы хотите принудительно загрузить, используйте 'where (x => x.Id == 1)'. В этом случае у вас может быть интерфейс (например, 'IHasId {int Id}'), чтобы ограничить ваш параметр типа T в прототипе универсального метода, или вы можете использовать reflexion on T для построения предиката where. – tschmit007

Смежные вопросы