.net DbExpressionBuilder.SetClause正在提供未找到的方法异常
我正在尝试将删除命令更改为更新命令。然而,下面的一行.net DbExpressionBuilder.SetClause正在提供未找到的方法异常,.net,entity-framework,entity-framework-6,interceptor,soft-delete,.net,Entity Framework,Entity Framework 6,Interceptor,Soft Delete,我正在尝试将删除命令更改为更新命令。然而,下面的一行 DbSetClause clause = DbExpressionBuilder.SetClause(property, now); 这给了我一个例外 {"Method not found: 'System.Data.Entity.Core.Common.CommandTrees.DbSetClause System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpre
DbSetClause clause = DbExpressionBuilder.SetClause(property, now);
这给了我一个例外
{"Method not found: 'System.Data.Entity.Core.Common.CommandTrees.DbSetClause System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder.SetClause(System.Data.Entity.Core.Common.CommandTrees.DbExpression, System.Data.Entity.Core.Common.CommandTrees.DbExpression)'."}
这应该是一个非常直截了当的代码。我不明白它为什么不起作用
var deleteCommand = interceptionContext.OriginalResult as DbDeleteCommandTree;
if (deleteCommand != null)
{
var column = "DeleteTime";
if (column != null)
{
var setClauses = new List<DbModificationClause>();
var table = (EntityType)deleteCommand.Target.VariableType.EdmType;
if (table.Properties.Any(p => p.Name == column))
{
DbVariableReferenceExpression variable = DbExpressionBuilder.Variable(deleteCommand.Target.VariableType, deleteCommand.Target.VariableName);
DbPropertyExpression property = DbExpressionBuilder.Property(variable, column);
DbExpression now = DbExpression.FromDateTime(DateTime.Now);
DbSetClause clause = DbExpressionBuilder.SetClause(property, now);
setClauses.Add(clause);
}
var update = new DbUpdateCommandTree(
deleteCommand.MetadataWorkspace,
deleteCommand.DataSpace,
deleteCommand.Target,
deleteCommand.Predicate,
setClauses.AsReadOnly(),
null);
interceptionContext.Result = update;
}
}
var deleteCommand=interceptionContext.OriginalResult作为DbDeleteCommandTree;
if(deleteCommand!=null)
{
var column=“DeleteTime”;
if(列!=null)
{
var setClaires=新列表();
变量表=(EntityType)deleteCommand.Target.VariableType.EdmType;
if(table.Properties.Any(p=>p.Name==column))
{
DbVariableReferenceExpression变量=DbExpressionBuilder.variable(deleteCommand.Target.VariableType,deleteCommand.Target.VariableName);
DbPropertyExpression属性=DbExpressionBuilder.property(变量,列);
DbExpression now=DbExpression.FromDateTime(DateTime.now);
DbSetClause子句=DbExpressionBuilder.SetClause(属性,现在);
增加(第条);
}
var update=new DbUpdateCommandTree(
deleteCommand.MetadataWorkspace,
deleteCommand.DataSpace,
deleteCommand.Target,
deleteCommand.Predicate,
setClaires.AsReadOnly(),
无效);
Result=update;
}
}