我正在使用 LINQ 生成一个简单的查询。我的模型是
public class Employee
{
public int EmployeeId {get; set;}
public string FirstName {get; set;}
[Required]
public string LastName {get; set;}
}
我的 LINQ 查询是
var q = db.Employees.Where (i => i.LastName != null);
这个查询被翻译成下面的SQL(见没有where
子句)
SELECT
[Extent1].[EmployeeId ] AS [EmployeeId],
[Extent1].[FirstName] AS [FirstName],
[Extent1].[LastName] AS [LastName]
FROM [dbo].[Employees] AS [Extent1]
如果我Required
从模型中删除该属性,SQL 查询会添加该Where
子句。所以,我假设 LINQ 通过删除 where 子句来优化查询。但我想保留Required
属性并想使用 LINQ。有什么解决办法吗?
由于我正在处理旧数据库,因此我有一些LastName
为空的记录。但我想添加Required
字段,以便所有新记录都具有LastName
.