LinqPad错误:Lambda表达式无法转换为“String”,因为“String”不是委托类型

时间:2013-07-17 14:50:55

标签: vb.net entity-framework linq-to-sql linqpad

使用linqPad时出现以下错误:

  

Lambda表达式无法转换为“String”,因为“String”不是委托类型。

使用以下代码进行复制时。

知道什么可能是错的。我正在使用实体框架,并已配置linqPad来读取实体框架对象。

我可以使用linqPad创建EF查询,还是严格意义上的linq?

dim db As  PlanITEntities = New PlanITEntities

Dim projects = From p In db.Projects.Include(Function(p) p.AvailableSpaceTypes) _
                                    .Include(Function(p) p.DisadvantageDegree) _
                                    .Include(Function(p) p.FundingSources) _
                                    .Include(Function(p) p.PartnerApprovalStatusCode) _
                                    .Include(Function(p) p.PhysicalConstraintTypes) _
                                    .Include(Function(p) p.PolicyConstraintTypes) _
                                    .Include(Function(p) p.Profile) _
                                    .Include(Function(p) p.Program) _
                                    .Include(Function(p) p.Program1) _
                                    .Include(Function(p) p.Recommendation) _
                                    .Include(Function(p) p.RequestType) _
                                    .Include(Function(p) p.SchematicDesignSource) _
                                    .Include(Function(p) p.Recommendation1) _
                                    .Include(Function(p) p.StatusCode) _
              Where (p.DeleteFlag <> True) _
              Select p

2 个答案:

答案 0 :(得分:1)

问题似乎是对象“p”的一个或多个属性不是字符串。但是,你最有可能误解了.Include。它急切地加载您指定的相关表格。所以如果你有:

Dim projects = From p In db.Projects.Include("Managers")

当执行查询时,它会急切地从“管理器”表中为“项目”表中的每一行加载所有相关记录。不知何故,我不认为这是你用你发布的代码想要完成的事情。

答案 1 :(得分:0)

采用lambda表达式的include的签名位于system.data.entity程序集中,因此可能不适用于linqPad。