Skip to content

Commit 5e005e0

Browse files
committed
Refactor
1 parent e1c1613 commit 5e005e0

2 files changed

Lines changed: 10 additions & 9 deletions

File tree

Extensions/Xtensive.Orm.BulkOperations/Internals/AddValueContext.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Linq.Expressions;
1+
using System.Linq.Expressions;
2+
using Xtensive.Linq;
23
using Xtensive.Orm.Model;
34
using Xtensive.Sql.Dml;
45

@@ -16,5 +17,10 @@ internal class AddValueContext
1617
public FieldInfo Field { get; set; }
1718

1819
public bool SubqueryExists { get; set; }
20+
21+
public object EvalLambdaBody() =>
22+
Lambda.Body is ConstantExpression ce
23+
? ce.Value
24+
: FastExpression.Lambda(Lambda.Body).Compile().DynamicInvoke();
1925
}
20-
}
26+
}

Extensions/Xtensive.Orm.BulkOperations/Internals/SetOperation.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -146,10 +146,7 @@ private void AddComputedExpression(AddValueContext addContext)
146146
private void AddConstantValue(AddValueContext addContext)
147147
{
148148
SqlTableColumn column = SqlDml.TableColumn(addContext.Statement.Table, addContext.Field.Column.Name);
149-
var constant =
150-
addContext.Lambda.Body is ConstantExpression ce
151-
? ce.Value
152-
: FastExpression.Lambda(addContext.Lambda.Body).Compile().DynamicInvoke();
149+
var constant = addContext.EvalLambdaBody();
153150
SqlExpression value;
154151
if (constant == null) {
155152
value = SqlDml.Null;
@@ -227,9 +224,7 @@ private void AddEntityValue(AddValueContext addContext)
227224
}
228225
}
229226
i = -1;
230-
var entity = (IEntity) (addContext.Lambda.Body is ConstantExpression ce
231-
? ce.Value
232-
: FastExpression.Lambda(addContext.Lambda.Body).Compile().DynamicInvoke());
227+
var entity = (IEntity)addContext.EvalLambdaBody();
233228

234229
foreach (ColumnInfo column in addContext.Field.Columns) {
235230
i++;

0 commit comments

Comments
 (0)