我有一个让我很头疼的问题。几天前我已经用谷歌搜索了一个解决方案,但我还没有找到它,如果你们中的一个可以帮助我,那就太好了!
我有这种方法可以为我获取 SQL 语句:
private static string GetClause<T>(IQueryable<T> clause) where T : BaseEntity
{
string snippet = "FROM [dbo].[";
string sql = clause.ToString();
string sqlFirstPart = sql.Substring(sql.IndexOf(snippet));
sqlFirstPart = sqlFirstPart.Replace("AS [Extent1]", "");
sqlFirstPart = sqlFirstPart.Replace("[Extent1].", "");
return sqlFirstPart;
}
但是,当我尝试使用某些过滤器(例如 where)时,这不起作用,因为它会返回一些“@p_ linq _{0}”。而不是价值观。我知道这些是我查询的参数,但它们存储在哪里?
我将其用于 EF5 Code First 上的批量删除目的。