Pessoal, estou seguindo os passos do curso de Entity Framework mas usando Windows Form Aplication e "enrosquei" ao tentar instanciar uma classe DAO no form da aplicação. Acho que está relacionado ao construtor:
No formulário onde vou precisar da classe DAO está assim:
using Cadastro_de_Bombas.DAO;
using Cadastro_de_Bombas.Entidades;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Cadastro_de_Bombas
{
public partial class frmCadastroBombas : Form
{
EntidadesContext contexto = new EntidadesContext();
//o erro está no (contexto) da linha abaixo
BombaDAO dao = new BombaDAO(contexto);
public frmCadastroBombas()
{
InitializeComponent();
}
private void frmCadastroBombas_Load(object sender, EventArgs e)
{...
e o erro do contexto reclama o seguinte: Error CS0236 A field initializer cannot reference the non-static field, method, or property
Lá na minha classe BombaDAO acredito que esteja tudo ok:
using Cadastro_de_Bombas.Entidades;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Cadastro_de_Bombas.DAO
{
public class BombaDAO
{
private EntidadesContext contexto;
public BombaDAO(EntidadesContext contexto)
{
this.contexto = contexto;
}
public void AdicionaBomba(Bomba b)
{
this.contexto.Bombas.Add(b);
this.contexto.SaveChanges();
}
public void AtualizaBomba(Bomba b)
{
this.contexto.SaveChanges();
}
public void RemoveBomba(Bomba b)
{
this.contexto.Bombas.Remove(b);
this.contexto.SaveChanges();
}
public Bomba BuscaBombaPorId(int id)
{
return this.contexto.Bombas.FirstOrDefault(p => p.ID == id);
}...
Peço desculpas se for um erro primário com construtores ou encapsulamento, mas não consegui resolver sozinho. Agradeço por qualquer ajuda! Abraços!