Já vi muitos artigos sobre como superar esse problema, todos relacionados ao CTP4, Ou adicionando meus próprios métodos de extensão.
Existe uma maneira "oficial" de EF4 incluído para usar expressões lambda dentro de include (para relações de primeiro nível e também de segundo e nível superior) ou eventualmente não foi incluído no RTM?
Existe um - eu ficaria feliz em aprender como fazê-lo, já que usar a expressão lambda em meu código agora (com # system.data.entity # system.data.linq) ainda me dá:
Não é possível converter a expressão lambda para o tipo 'string' porque não é um tipo de delegado em:
var customers = from c in
context.Customers.Include(c=>c.Phone)
c#
entity-framework-4
lambda
Dani
fonte
fonte
Respostas:
A versão RTM do Entity Framework 4.1 na verdade inclui métodos de extensão no
EntityFramework.dll
arquivo, para carregamento rápido com lambda por meio daInclude
função. Basta incluir a DLL em seu projeto e você deverá ser capaz de escrever códigos como:Lembre-se de adicionar uma instrução Import / Using para incluir o namespace System.Data.Entity . Caso contrário, o compilador não pode encontrar os métodos de extensão. Por exemplo:
Consulte este artigo do blog da equipe ADO.NET para obter mais informações.
fonte
Embora isso esteja implícito na pergunta, para qualquer pessoa que tenha o mesmo problema em que não pode usar lambdas com .Include, certifique-se de ter isto:
fonte
Não, não há suporte oficial para Incluir com expressão lambda no RTM no momento. Estou usando isso .
Quando falamos sobre CTP4, estamos nos referindo ao Entity Framework Feature. É uma API mais recente que EF4. Inclui principalmente o Code First e algumas outras melhorias.
fonte