gpt4 book ai didi

c# Nhibernate 使用动态参数创建查询

转载 作者:太空宇宙 更新时间:2023-11-03 14:47:45 25 4
gpt4 key购买 nike

使用以下扩展方法:

    public static void SetParameters(this IQuery query, List<object> Parameters) {
for (int i = 0; i < Parameters.Count(); i++) {
query.SetParameter(i, Parameters[i]);
}
}
public static IQuery SetQuery(this ISession session, string Query, object[] Parameters) {
return session.CreateSQLQuery(Query + string.Empty + "(" + ParseExt(Parameters) + ")");
}

private static string ParseExt(object[] Parameters) {
var str = new List<string>();
for (int i = 0; i < Parameters.Length; i++) {
str.Add(":" + i);
}
return string.Join(",", str);
}

我正在创建一个查询:

  • public IEnumerable<T> Execute<T>(string Query, params dynamic[] Parameters) {
    using (var _session = _transactionManager.GetSession()) {
    var _cmd = _session.SetQuery(Query, Parameters);
    if (Parameters != null) {
    _cmd.SetParameters(Parameters.ToList());
    }
    return _cmd.List<T>();
    }
    }

抛出以下错误:

Remember that ordinal parameters are 1-based!

注意:我试图将索引更改为从 1 开始

最佳答案

位置参数的符号不是:xxx而是?

此更改将起作用

private static string ParseExt(object[] Parameters) {
var str = new List<string>();
for (int i = 0; i < Parameters.Length; i++) {
//str.Add(":" + i);
str.Add("?"); // + i);
}
return string.Join(",", str);
}

关于c# Nhibernate 使用动态参数创建查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53396982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com