Я хотел бы получить IQueryable<User>
, являющийся POCO. У меня есть две функции в моем репозитории, которые преобразуют O/RM в POCO и наоборот. Это отлично работает при сохранении или получении одного пользователя, но как насчет получения IQueryable пользователя?Entity Framework и POCO в шаблоне хранилища
public IQueryable<Domains.User> GetUsers()
{
// This wont work because it can't convert to a store expression
return context.JUsers.Select(u => ConvertUserORMToDomain(u));
}
ли я вручную переписать мое преобразование в каждом домене POCO в каждом методе IQueryable у меня есть? Мне было бы лучше без шаблонов, если это так.
Преобразователь: private Domains.User ConvertUserORMToDomain(ORM.JUser ormUser)
спасибо, не могли бы вы привести пример того, что вы говорите, с POCO, чтобы напрямую представлять мои модели домена? –
@DVark - я предполагаю, что вы используете Entity Framework 4? Если это так, EF4 разрешает «чистые POCO», что означает отображение объектов на вашем EDMX в классы POCO. В EF4 POCO есть хороший вопрос о том, с чего начать? : http://stackoverflow.com/questions/2478081/entity-framework-4-poco-where-to-start. Они не полагаются на EF, и вы можете добавлять бизнес-правила/логику к этим объектам - они становятся вашей моделью домена. – RPM1984
Другими словами - вы можете нанести свой объект «Пользователь» на свой EDMX непосредственно на объект «Домены.User». – RPM1984