У меня есть сценарий с несколькими методами linq include с ассоциациями табличных объектов. Пусть сценарий:Как использовать INCLUDE в Linq только для выбранных столбцов?
User has Groups
User has Permissions
User has Vehicles
var _users=
(from u in dbconetxt.Users
join g in dbconetxt.Gropus on u.userId equals g.userId
join p in dbconetxt.Permissions on u.userId equals p.userId
join v in dbconetxt.Vehicles on u.userId equals v.userId
Where u.Status=true
select u).Include(u.Groups)
.Include(u.Permissions)
.Include(u.Vehicles)
.ToList()
После присоединения всех этих таблиц в одном запросе, я выбираю объект пользователя. Конечно, я бы получил List, но я хочу, чтобы каждый пользовательский объект должен включать свои соответствующие группы, разрешения, транспортные средства, но из транспортных средств и разрешений я хочу загрузить только несколько столбцов/свойств, а не все. Итак, как я могу указать, какие столбцы загружать в этом сценарии?
Я использую Entity Framework 4.1 + C# + SQL Server.
Я не совсем понимаю ваш вопрос, но NHibernate допускает ленивые свойства загрузки, а EF - нет. NHibernate чаще поддерживает то, о чем вы просите, но EF может поддерживать то, что вы хотите, если вам не нужны ленивые загруженные свойства. –
Начиная с v4 Entity Framework поддерживает ленивую загрузку. См.: http://thedatafarm.com/blog/data-access/a-look-at-lazy-loading-in-ef4/ – Pawel
@Pawel - Я не говорю о ленивой загрузке всего класса, EF всегда поддержал это. Я говорю о ленивой загрузке одного или нескольких свойств в классе, в то же время стремясь загрузить другие свойства, которые, похоже, просят Red Swan. –