Запрос объединения в сущности с использованием выражения лямбда

Я использую VS12 и фреймворк сущности в своем веб-приложении. Созданный baseRepository для получения данных из базы данных (sql server 2008 R2), в котором контекст запроса - GetAll(), где, findBy, add, update, saveChanges, dispose, getById(). Используйте этот репозиторий для транзакции. В одном случае используйте соединение для получения данных, отфильтрованных от трех разных объектов.

может ли кто-нибудь дать пример тому же..

1 ответ

Я решил эту проблему таким образом,

using (var db = new KitRepository<servicelevel>())
 { 
 using (var kit = new KitRepository<kit>())
 {
 var kitServiceLevel = kit.Search(o => o.PatientId == patientId).Select(i => i.kitServiceLevelId).ToList();
 var temp = db.Where(o => o.HospitalMasterId == HospitalId && kitServiceLevel.Contains(o.ServiceLevelId) && o.IsEnabled == true).Select(i => i.TabletRequired).ToList();
 var entity = db.Search(l => temp.Contains(l.TabletRequired) && lstServiceType.Contains(l.ServiceCodeTypeEnumId)).ToList();

 var model = new List<servicelevelmodel>();
 Mapper.Map(entity, model);
 return model;
 }
 }
</servicelevelmodel></kit></servicelevel>

Если кто-то оптимизировал запрос

var kitServiceLevel = kit.Search(o => o.PatientId == patientId).Select(i => i.kitServiceLevelId).ToList();
 var temp = db.Where(o => o.HospitalMasterId == HospitalId && kitServiceLevel.Contains(o.ServiceLevelId) && o.IsEnabled == true).Select(i => i.TabletRequired).ToList();
 var entity = db.Search(l => temp.Contains(l.TabletRequired) && lstServiceType.Contains(l.ServiceCodeTypeEnumId)).ToList();

Тогда дайте мне знать.

licensed under cc by-sa 3.0 with attribution.