В приложении. NET Framework, использующем Entity Framework 6, я хотел бы написать SQL лямбда-выражение запроса следующим образом:
var result = DbContext.Register
.Where(r => r.Metadata.JsonValue("$.CONTRACT") == 123456)
.ToList();
Я хочу перехватить выражение и написать SQL команда, подобная этой:
public class DbSetInterceptor : ExpressionVisitor
{
protected override Expression VisitBinary(BinaryExpression node)
{
BinaryExpression expression;
//WRITE EXPRESSION FOR "JSON_VALUE(Metadata, '$.CONTRACT') = 123456"
//expression = Expression.MakeBinary(...);
return base.VisitBinary(expression);
}
}
Как написать выражение, которое переводит команду JSON_VALUE ?