C# com Entity Framework 6
Bom dia galera, estou desenvolvendo uma aplicação para uso próprio, utilizando windows form e entity framework 6, e estou com algumas dúvidas.
Tenho 2 tabelas:
DESPESA (ID_DESPESA, VALOR, ID_CATEGORIA)
CATEGORIA (ID_CATEGORIA, DESCRICAO)
1 - Estou utilizando somente a classe de mapeamento que o próprio entity criou para fazer para todo CRUD. Isso é correto ou eu deveria usar um Model meu próprio?
2 - Estou utilizando GridView para listar os registros, é o mais apropriado?
3 - No meu DAO uso o retorno List<TABELA> está correto?
4 - Estou tendo dificuldade de fazer o Join na consulta pra listar as Despesas e pegar a descrição da Categoria, não sei se estou fazendo certo.
DAO:
public List<DESPESA> getDespesas(int mes, int ano)
{
using (DB_MinhasFinancasEntities contexto = new DB_MinhasFinancasEntities())
{
var despesas = (from d in contexto.DESPESA
join c in contexto.CATEGORIA on d.ID_CATEGORIA equals c.ID_CATEGORIA
where d.DATA.Month == mes && d.DATA.Year == ano
select d).ToList<DESPESA>();
return despesas;
}
}
Form que lista as Despesas:
grdDespesas.DataSource = DespesaBO
.getDespesas(mes, ano)
.Select(d => new
{
ID = d.ID_DESPESA
, CATEGORIA = d.CATEGORIA.DESCRICAO
, VALOR = d.VALOR.ToString("N2")
}).ToList();
Classe de Mapeamento que o Entity criou:
namespace DB_EntityFramework
{
using System;
using System.Collections.Generic;
public partial class DESPESA
{
public int ID_DESPESA { get; set; }
public decimal VALOR { get; set; }
public int ID_CATEGORIA { get; set; }
public virtual CATEGORIA CATEGORIA { get; set; }
}
}
Fazendo assim a GridView fica totalmente vazia, sem mesmo os nomes das colunas, depois de algumas tentativas ele dá esse erro:
Additional information: The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.
Ficaria muito agradecido se alguém pode-se tirar todas minhas dúvidas.
Abraço.
Discussão (6)
Carregando comentários...