有什么办法可以使用EF Code First来简化这样的简单操作

DELETE FROM Order WHERE OrderDate >= @minOrderDate AND OrderDate >= @maxOrderDate

我有一个要删除至少10.000条记录的表。我认为在我可以使用for-each循环删除它们之前先检索所有记录会很低效。

最佳答案

您始终可以通过上下文跨原始SQL发送。 _context.Database.SqlQuery(sqlDeleteStatement, parameterList)

string sqlDeleteStatement = "DELETE FROM Order" +
    "WHERE OrderDate >= @minOrderDate AND OrderDate >= @maxOrderDate";

List<SqlParameter> parameterList = new List<SqlParameter>();

parameterList.Add(new SqlParameter("@minOrderDate", minDate));

parameterList.Add(new SqlParameter("@maxOrderDate", maxDate));

_context.Database.SqlQuery(sqlDeleteStatement, parameterList);

10-07 19:39