【发布时间】:2018-09-07 07:45:06
【问题描述】:
Dim records = From record In db.table
Where record.Level = "Level 1"
Where record.NewNumber IsNot Nothing
Select record.Number
当我调用 records.ToString() 时,我会得到如下输出:
选择 [Extent1].[Number] AS [Number] FROM [dbo].[table] AS [Extent1] WHERE [Extent1].[Level] = @p__linq__0
NewNumber is not null 的 where 子句缺失。如果我将 linq 更改为 NewNumber 什么都不是,我会得到以下信息:
选择 CAST(NULL AS varchar(1)) AS [C1] 从(选择 1 作为 X)作为 [SingleRowTable1] 其中 1 = 0
这里发生了什么? number 字段是我的主键,newnumber 只是另一个字段。我只更改了这篇文章的一些名称/值。使用 And/AndAlso 在同一行执行两个 where 子句没有区别。
NewNumber 字段就是这样配置的。
[属性](Function(x) x.NewNumber).HasMaxLength(20).HasColumnName("Newnumber").IsOptional()
【问题讨论】:
-
AndAlso 而不是第二个 Where ?
-
遗憾的是没有区别。