Articles of expresión

Convertir Predicado a Expresión <Func >

¿Es posible convertir un Predicate to Expression<Func> de alguna manera? Me gustaría usar la siguiente función IQueryable usando los filtros de mi ICollectionView: public static System.Linq.IQueryable Where(this System.Linq.IQueryable source, System.Linq.Expressions.Expression<System.Func> predicate) Gracias

Convertir expresión <Func > a Expression <Func >

Tengo la siguiente expresión, que es de tipo Expression<Func> x => x.Name Ahora, no sé el tipo de x.Name en tiempo de comstackción, pero ahora lo hago en tiempo de ejecución ya que está almacenado en un Type . ¿Cómo puedo convertir mi expresión para que sea de tipo Expression<Func> donde TOutput es un Type […]

Hacer que un tipo de valor se comporte como un tipo de referencia usando Expresión <Func >

Sabemos que int es un tipo de valor y lo siguiente tiene sentido: int x = 3; int y = x; y = 5; Console.WriteLine(x); //says 3. Ahora, aquí hay un poco de código donde queremos, a falta de un mejor término “vincular” las dos variables apuntan a la misma ubicación de memoria. int x […]

Crear expresión para invocar método sin parámetro

Estoy intentando crear una expresión que invoca un método interno, el método interno tiene un parámetro de salida, ¿es esto posible? public class Program { static void Main(string[] args) { var type = typeof (Program); var methodInfo = type.GetMethod(“ValidateActiveControl”, BindingFlags.Instance | BindingFlags.NonPublic); var p1 = Expression.Parameter(type, “program”); var p2 = Expression.Parameter(typeof (bool), “validatedControlAllowsFocusChange”); var invokeExpression […]

“Tipo de datos no coinciden en la expresión de criterios”. Error

Obtengo una “No coincidencia de tipo de datos en la expresión de criterios”. error al ejecutar este código en una base de datos pero funciona perfectamente bien en otra base de datos. Al intentar copiar la tabla relevante a otra base de datos y ejecutarla desde él, el progtwig falla nuevamente using System; using System.Collections.Generic; […]

¿Existe un método que evalúe una cadena y produzca un número entero (asumiendo que la cadena es una ecuación) en C #?

Está bien, sé que en Python, digamos que tienes una cadena llamada strExpression y su valor fue “1 + 2- (3 * 5)” Hay un método de python (función, lo siento, confundo los términos) que evaluará esa cadena y devolverá un valor entero numérico (en este caso, debería devolver -12. No recuerdo la syntax de […]

¿Cómo parametrizar un selector con una función en la consulta EF?

Tengo una función de proyección que paso al método IQueryable.Select() : private static Expression<Func> GetPriceSelector(){ return e => new PriceItem { Id = e.Id, Price = Math.Round(e.Price, 4) }; } Todo funciona bien, pero quiero parametrizarlo así: private static Expression<Func> GetPriceSelector(Func formula){ return e => new PriceItem { Id = e.Id, Price = formula(e) }; […]

¿Cómo puedo evaluar el resultado de una expresión booleana en formato de cadena en tiempo de ejecución en C #?

Digamos que leí esta condición de un archivo: Condition = “Person.Value.Status == 9″ ¿Cómo puedo verificar si esta condición es verdadera en el tiempo de ejecución siempre que “Persona” sea una clase en mi código?

Limitaciones de la profundidad del árbol de expresión

Estoy enfrentando un problema al intentar llamar a Compile () en la LambdaExpression de tipo Expression <Func > que tiene una profundidad de alrededor de 400. Y los valores menores no causan ningún problema. Y no puedo encontrar nada acerca de este tipo de limitación. ¿Alguien puede aclarar esto? ¿Puedo boost este límite? actual: Lo […]

Un poco curioso para entender el árbol de expresiones en .NET

He leído varios artículos y varias publicaciones de stackoverflow.com sobre el árbol de expresiones. Está latiendo mi cerebro para entender. Preguntas: 1) Al igual que DOM (Document Object Model), ¿es una representación de lógica en memoria? 2) Alguien explicó que es un mecanismo para traducir un código ejecutable en datos, al usarlo podemos producir una […]