Fix of Where parameter type not set problem.

This commit is contained in:
grzegorz.russek
2014-09-09 07:00:13 +00:00
parent baaa6e9452
commit 53f27f636e
10 changed files with 1247 additions and 1112 deletions

View File

@@ -113,6 +113,17 @@ namespace DynamORM.Builders.Extensions
if (column.VirtualColumn.HasValue)
builder.VirtualMode = column.VirtualColumn.Value;
Action<IParameter> modParam = (p) =>
{
if (column.Schema.HasValue)
p.Schema = column.Schema;
if (!p.Schema.HasValue)
p.Schema = column.Schema ?? builder.GetColumnFromSchema(column.ColumnName);
};
builder.CreateTemporaryParameterAction(modParam);
// It's kind of uglu, but... well it works.
if (column.Or)
switch (column.Operator)
@@ -145,6 +156,7 @@ namespace DynamORM.Builders.Extensions
case DynamicColumn.CompareOperator.Between: builder.InternalWhere(column.BeginBlock, column.EndBlock, x => x(builder.FixObjectName(column.ColumnName)).Between(column.Value)); break;
}
builder.OnCreateTemporaryParameter.Remove(modParam);
builder.VirtualMode = virt;
return builder;