【问题标题】:query of join in entities using lambda expression使用 lambda 表达式查询加入实体
【发布时间】:2013-12-14 05:34:02
【问题描述】:

我在我的 Web 应用程序中使用 VS12 和实体框架。 为从数据库(sql server 2008 R2)获取数据制作了baseRepository,其中查询上下文为GetAll(),其中findBy,add,update,saveChanges,dispose,getById()。 使用此存储库进行交易。 在一种情况下,使用连接来获取从三个不同实体中过滤的数据。

任何人都可以举出同样的例子吗..

【问题讨论】:

    标签: c# sql sql-server entity-framework lambda


    【解决方案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;
                    }
                }
    

    如果有人优化了查询

     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();
    

    然后告诉我。

    【讨论】:

      猜你喜欢
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多