【发布时间】:2013-09-16 02:31:40
【问题描述】:
我正在使用 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 的值。
【问题讨论】:
-
所以您希望您的 model 需要
LastName而 database 不需要? -
@DStanley 是的,你是对的
标签: c# linq entity-framework-4