有什么办法可以使用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);