gpt4 book ai didi

c# - DbQuery 中 ObjectQuery.Parameters 的等价物是什么

转载 作者:搜寻专家 更新时间:2023-10-30 23:14:10 25 4
gpt4 key购买 nike

我有使用 linq 语句获取查询的代码,使其成为 DbQuery 而不是 ObjectQuery 并且我使用该查询通过 foreach 循环添加参数。但是 DbQuery 没有参数支持。我知道我可以手动添加它们。但是我的 SQL 语句中有 36 个不同的参数。所以我需要找到一种方法来添加参数。

foreach (var parameter in query.Parameters)
{
parameters.Add(new System.Data.SqlClient.SqlParameter { ParameterName = parameter.Name, Value = parameter.Value });
}

entities.Database.ExecuteSqlCommand(sql, parameters.ToArray());

这是我用于参数的代码。

我需要一种方法来使用 DbQuery

最佳答案

您可以通过向其附加表达式 来组成DbQuery。通常用于执行此操作的模式是:

IQueryable<MyType> query = dbContext.Set<MyType>();
if (param1 != null)
query = query.Where(x => x.Property1 == param1);
if (param2 != null)
query = query.Where(x => x.Property2 == param2);

我不知道这是否适用于您的情况。如果不是,您可以随时求助于 ObjectQueryDbContextObjectContext 的包装器,您可以通过 ((IObjectContextAdapter)dbContext).ObjectContext 获取后者。这是创建 ObjectQueries 的起点。

关于c# - DbQuery 中 ObjectQuery.Parameters 的等价物是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16700983/

25 4 0