2015-07-06 2 views
0

У меня есть несколько производных классов (позвоните по телефону DerivedClass) с BaseClass.Как передать параметр DbSet <DerivedClass>, если параметр в объявлении метода - DbSet <BaseClass>

Мне нужно передать в качестве Parametr DbSet <DerivedClass> изменения сущности DbSet:

в библиотеке:

protected void ChangeEntity (DbSet <BaseClass> list) { 

} 

в Кодексе:

DbSet <DerivedClass> list; 
ChangeEntity (list); // Compillation error 

Как передать полученную коллекцию класса в качестве параметра ?

+5

Generic. 'ChangeEntity (...) где T: BaseClass' –

+0

Спасибо, @Anthony Pegram – thedriveee

ответ

0

Если вам нужно только изменить объекты сущностей затем сделать ваш метод ChangeEntity принимает IQueryable тип вместо:

protected void ChangeEntity (IQueryable<BaseClass> list) {} 

Тогда вы можете вызвать его в коде:

DbSet <DerivedClass> list; 
ChangeEntity (list); 
+0

Спасибо за ответ @ mr100, но как использовать метод Add в элементе ChangeEntity без получения сущностей базы данных (например, путем вызова ToList()), ? – thedriveee

+1

В таком случае вам нужно использовать подход Энтони Пеграма. – mr100

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