Pergunta

É possível adicionar propriedades a meu modelo que existem não faça no banco de dados?

Por exemplo, eu tenho uma tabela de calendário, quero retireve esses dados no meu controlador MVC, em seguida, trabalhar fora tempo que resta até cada entrada começa e devolver este para a vista. Então, eu gostaria de um outro imóvel no meu modelo de calendário para o tempo de espera à esquerda, que é um valor que irá gerar fora do banco de dados.

Eu tentei apenas adicionando a propriedade, mas quando eu faço que eu recebo erros porque a propriedade não está mapeado para qualquer coisa.

Este é mesmo possível?

Graças

Foi útil?

Solução

Você deve ser capaz de adicionar a propriedade para o modelo, mas você não será capaz de consultar com LINQ. LINQ acabará por construir e expressão que ele vai querer correr contra o banco de dados usando SQL. Sua nesse ponto que o seu LINQ vai deixar de encontrar um mapeamento de sua propriedade para um lugar de campo.

Se a consulta retorna um IEnumerable do tipo real em que você criou a propriedade a sua visão pode ser capaz de acessá-lo. Eu não me lembro se EF insiste em mapeamento, nesse caso, ele pode fazer.

Você pode achar que você pode criar consulta LINQ subseqüente que usa LINQ-to-objetos se você quiser fornecer algum outro tipo composto para o seu ponto de vista.

Outras dicas

É uma propriedade não-persistente ou transitória. Eu não sei Entidade Framwork bem, mas com um google busca rápida você deve encontrar a resposta.

BTW você pode encontrar um monte de dicas aqui: http://weblogs.asp.net/zeeshanhirani/archive/2008/12/18/my-christmas-present-to-the-entity-framework-community.aspx

Depois de fazer uma busca rápida eu e um teste no VS2008 não vejo uma maneira de excluir uma propriedade do mapeamento. Talvez ele requer que você editar manualmente o arquivo de mapeamento? : (

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top