C#EF Update在一个请求中有效

时间:2015-05-06 14:36:40

标签: c# entity-framework

我使用SQL过程根据crieteria更新一个表中的许多行,这里是日期。

CREATE PROCEDURE [S_SourceProduct].P_U_SourceProductSetDisableBeforeDate
@UpdateDate DATETIME
AS
SET NOCOUNT ON;
UPDATE [S_SourceProduct].T_E_SourceProduct
SET [Disabled]=1
WHERE [S_SourceProduct].T_E_SourceProduct.UpdateDate <  @UpdateDate 

我没有用实体来做,因为我只知道两种方式:

  • 检索所有项目并在每个项目上循环=&gt;比我的存储过程慢很多行。
  • 将我的程序复制到字符串中,并将其用作字符串查询=&gt;没有关于语法或列名等的构建检查。

除了两者之外还有其他吗?

1 个答案:

答案 0 :(得分:3)

如果您不介意使用Entity Framework的扩展,可以使用EntityFramework.Extended

来实现

For example

//delete all users where FirstName matches
context.Users.Delete(u => u.FirstName == "firstname");

//update all tasks with status of 1 to status of 2
context.Tasks.Update(
    t => t.StatusId == 1, 
    t2 => new Task {StatusId = 2});