使用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
答案 0 :(得分:1)
问题似乎是对象“p”的一个或多个属性不是字符串。但是,你最有可能误解了.Include。它急切地加载您指定的相关表格。所以如果你有:
Dim projects = From p In db.Projects.Include("Managers")
当执行查询时,它会急切地从“管理器”表中为“项目”表中的每一行加载所有相关记录。不知何故,我不认为这是你用你发布的代码想要完成的事情。
答案 1 :(得分:0)
采用lambda表达式的include的签名位于system.data.entity程序集中,因此可能不适用于linqPad。