2016-01-14 2 views

ответ

1

Нет, EF знает только модели, которые являются классы. Определение коллекции интерфейсов, как и вы, невозможно. Тем не менее, что вы можете сделать, это написать методы расширения запросов, на которых есть ограничения интерфейса. Например:

IMyInterface { int Id {get; set;}} 

public static IQueryable<T> Filter<T>(this IQueryable<T> q, int id) where T: IMyInterface 
{ 
    return q.Where(q.Id == id); 
} 

Здесь T представляет собой модель, которая должна осуществить IMyInterface.

+0

Я знаю, что это невозможно с EF6, но это правда даже с EF7? – Hugo

+0

Боюсь, что это невозможно, что вы пытаетесь сделать на самом деле? –

+0

Я пытаюсь отделить свой объект таким образом, чтобы я мог получить сборку, содержащую только интерфейс. Таким образом, я мог бы использовать этот интерфейс каждый раз, где может быть приложение. И для этого легко реализовать объект Mock для тестирования purpopse – Hugo

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