我从数据库中检索数据(实体框架)使用的DTO:加载虚拟财产
IQueryable<User> users = repository.ListFiltered<User>(n => n.Active);
var usersDTO = from user in users
select new UserAccountDTO{
UserId = user.Id,
UserName = user.Name,
InstitutionName = user.Institution.Name,
InstitutionCountry = user.Institution.Country.Name
};
我这样做是因为用户实体和机构实体,有很多的数据我现在不需要,所以我不想从数据库中检索它。
但问题是,我不喜欢的代码,我想拆分代码并连接选择,有无论如何做到这一点?
我想到达这样的:
users.LoadUserData().LoadInstitutionData();
你说什么?可能吗?
所以'Institution'是导航属性到'User'。你为什么不简单地''选择'在你的版本库。ListFiltered?然后最后做'.ToList()',因为你试图实现的是甚至是复杂的,而不是整洁的 –
因为我不想检索所有的数据,我只需要一些字段,并且在某些条件下... –