0

使用 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
4

2 回答 2

1

问题似乎是对象“p”的一个或多个属性不是字符串。但是,您很可能误解了 .Include 的作用。它预先加载您指定的任何相关表。所以如果你有:

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

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

于 2013-07-17T17:04:24.137 回答
0

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

于 2019-10-13T15:31:24.107 回答