He visto muchos artículos sobre cómo superar este asunto, todos relacionados con CTP4, o agregando mis propios métodos de extensión.
¿Existe una forma "oficial" incluida en EF4 de usar expresiones lambda dentro de include (tanto para las relaciones de primer nivel como para las de segundo y más nivel) o finalmente no se incluyó en el RTM?
Si hay uno, me encantaría aprender cómo hacerlo, ya que usar la expresión lambda en mi código ahora (con # system.data.entity # system.data.linq) todavía me da:
No se puede convertir la expresión lambda al tipo 'cadena' porque no es un tipo delegado en:
var customers = from c in
context.Customers.Include(c=>c.Phone)
c#
entity-framework-4
lambda
Dani
fuente
fuente
Respuestas:
La versión RTM de Entity Framework 4.1 en realidad incluye métodos de extensión en el
EntityFramework.dll
archivo, para una carga ansiosa con lambda a través de laInclude
función. Simplemente incluya la DLL en su proyecto y debería poder escribir código como:Recuerde agregar una instrucción Import / Using para incluir el espacio de nombres System.Data.Entity . De lo contrario, el compilador no puede encontrar los métodos de extensión. P.ej:
Consulte este artículo del blog del equipo de ADO.NET para obtener más información.
fuente
Aunque esto está implícito en la pregunta, para cualquier otra persona que tenga el mismo problema en el que no puede usar lambdas con .Include, asegúrese de tener esto:
fuente
No, no hay soporte oficial para Incluir con expresión lambda en RTM en este momento. Estoy usando esto .
Cuando hablamos de CTP4 nos referimos a Entity Framework Feature. Es una API más nueva que EF4. Incluye principalmente Code First y algunas otras mejoras.
fuente