c# Nhibernate create query with dynamic parameters
up vote
2
down vote
favorite
using the folowing extention methods :
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);
}
i'm creating a query :
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>();
}
}
throws the following error :
Remember that ordinal parameters are 1-based!
NOTE : i tried to change the index to start from 1
c# nhibernate
add a comment |
up vote
2
down vote
favorite
using the folowing extention methods :
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);
}
i'm creating a query :
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>();
}
}
throws the following error :
Remember that ordinal parameters are 1-based!
NOTE : i tried to change the index to start from 1
c# nhibernate
@dasblinkenlightselect * from dbo.OctoGetProducts
– buff
Nov 20 at 16:48
@dasblinkenlight its added after and parsed as follow :select * from dbo.OctoGetProducts(:0,:1,:2,:3,:4,:5,:6,:7)
– buff
Nov 20 at 17:13
add a comment |
up vote
2
down vote
favorite
up vote
2
down vote
favorite
using the folowing extention methods :
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);
}
i'm creating a query :
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>();
}
}
throws the following error :
Remember that ordinal parameters are 1-based!
NOTE : i tried to change the index to start from 1
c# nhibernate
using the folowing extention methods :
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);
}
i'm creating a query :
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>();
}
}
throws the following error :
Remember that ordinal parameters are 1-based!
NOTE : i tried to change the index to start from 1
c# nhibernate
c# nhibernate
asked Nov 20 at 16:04
buff
134111
134111
@dasblinkenlightselect * from dbo.OctoGetProducts
– buff
Nov 20 at 16:48
@dasblinkenlight its added after and parsed as follow :select * from dbo.OctoGetProducts(:0,:1,:2,:3,:4,:5,:6,:7)
– buff
Nov 20 at 17:13
add a comment |
@dasblinkenlightselect * from dbo.OctoGetProducts
– buff
Nov 20 at 16:48
@dasblinkenlight its added after and parsed as follow :select * from dbo.OctoGetProducts(:0,:1,:2,:3,:4,:5,:6,:7)
– buff
Nov 20 at 17:13
@dasblinkenlight
select * from dbo.OctoGetProducts
– buff
Nov 20 at 16:48
@dasblinkenlight
select * from dbo.OctoGetProducts
– buff
Nov 20 at 16:48
@dasblinkenlight its added after and parsed as follow :
select * from dbo.OctoGetProducts(:0,:1,:2,:3,:4,:5,:6,:7)
– buff
Nov 20 at 17:13
@dasblinkenlight its added after and parsed as follow :
select * from dbo.OctoGetProducts(:0,:1,:2,:3,:4,:5,:6,:7)
– buff
Nov 20 at 17:13
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
The symbol for position-parameter is not :xxx
but ?
.
This change will work
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);
}
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
The symbol for position-parameter is not :xxx
but ?
.
This change will work
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);
}
add a comment |
up vote
0
down vote
The symbol for position-parameter is not :xxx
but ?
.
This change will work
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);
}
add a comment |
up vote
0
down vote
up vote
0
down vote
The symbol for position-parameter is not :xxx
but ?
.
This change will work
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);
}
The symbol for position-parameter is not :xxx
but ?
.
This change will work
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);
}
answered Nov 21 at 8:31
Radim Köhler
105k31201269
105k31201269
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53396982%2fc-sharp-nhibernate-create-query-with-dynamic-parameters%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
@dasblinkenlight
select * from dbo.OctoGetProducts
– buff
Nov 20 at 16:48
@dasblinkenlight its added after and parsed as follow :
select * from dbo.OctoGetProducts(:0,:1,:2,:3,:4,:5,:6,:7)
– buff
Nov 20 at 17:13