1

是否可以通过使用带有 NodeType Extension 和 CanReduce = false 的自定义表达式继承器来自定义 SQL 的生成?

考虑以下要点,其中 Name 是 ViewModel 中的属性,Attribute1 是 MS SQL 中 SQL 类型列中的属性。

/* may not compile, focus is on SQL generation. */
Expression<Func<ViewModel, bool>> expr = (vm) => vm.Name == "abc" && vm.Attribute1 == 123;
var translator = new CustomExpressionVisitor();
LambdaExpression translated = (LambdaExpression)translator.Visit(expr);

/*
translated has a custom Expression type for vm.Attribute1 == 123 part, it is of type XmlPredicateExpression and this expression has all necessary information to generate an SQL query on this column.
*/

我们如何教 EntityFramework 为这个表达式生成 SQL?可能吗?

4

0 回答 0