Pessoal boa noite, estou com esse erro, podem me ajudar? Estou fazendo um projeto "treino", muito similar ao do curso, e está me apontando o erro abaixo, que não deixa gravar na tabela, como "idCliente" é um identity.
Podem me ajudar ? "The entity type 'Cliente' requires a primary key to be defined."
Segue o codigo.:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LocadoraProj
{
class Program
{
static void Main(string[] args)
{
GravarUsandoEntity();
}
private static void GravarUsandoEntity()
{
Cliente c = new Cliente();
c.nome = "Diogo Paes";
c.cpf = "12312312311";
c.dataNasc = new DateTime(1987,03,17);
c.endereco = "Joao da silva";
c.telefone = "44445555";
c.telefone2 = "955554444";
using (var contexto = new LocadoraContext())
{
contexto.Clientes.Add(c);
contexto.SaveChanges();
Console.Write("Por favor aperte qualquer tecla para cotinuar");
Console.ReadKey();
}
}
}
}
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
namespace LocadoraProj
{
internal class ClienteDAO : IDisposable
{
private SqlConnection conexao;
public ClienteDAO()
{
//this.conexao = new SqlConnection("Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=LojaDB;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;");
this.conexao = new SqlConnection("Data Source = (localdb)\\MSSQLLocalDB; Initial Catalog = LocadoraDB; Integrated Security = True; Connect Timeout = 30; Encrypt = False; TrustServerCertificate = True; ApplicationIntent = ReadWrite; MultiSubnetFailover = False;");
this.conexao.Open();
}
public void Dispose()
{
this.conexao.Close();
}
internal void Adicionar(Cliente c)
{
try
{
var insertCmd = conexao.CreateCommand();
insertCmd.CommandText = "INSERT INTO Clientes (nome, cpf, dataNasc, endereco, telefone, telefone2) VALUES (@nome, @cpf, @dataNasc, @endereco, @telefone, @telefone2)";
var paramNome = new SqlParameter("nome", c.nome);
insertCmd.Parameters.Add(paramNome);
var paramcpf = new SqlParameter("cpf", c.cpf);
insertCmd.Parameters.Add(paramcpf);
var paramdataNasc = new SqlParameter("dataNasc", c.dataNasc);
insertCmd.Parameters.Add(paramdataNasc);
var paramendereco = new SqlParameter("endereco", c.endereco);
insertCmd.Parameters.Add(paramendereco);
var paramtelefone = new SqlParameter("telefone", c.telefone);
insertCmd.Parameters.Add(paramtelefone);
var paramtelefone2 = new SqlParameter("telefone2", c.telefone2);
insertCmd.Parameters.Add(paramtelefone2);
insertCmd.ExecuteNonQuery();
}
catch (SqlException e)
{
throw new SystemException(e.Message, e);
}
}
internal IList<Cliente> Clientes()
{
var lista = new List<Cliente>();
var selectCmd = conexao.CreateCommand();
selectCmd.CommandText = "SELECT * FROM Clientes";
var resultado = selectCmd.ExecuteReader();
while (resultado.Read())
{
Cliente c = new Cliente();
c.idCliente = Convert.ToInt32(resultado["idCliente"]);
c.nome = Convert.ToString(resultado["nome"]);
c.cpf = Convert.ToString(resultado["cpf"]);
c.dataNasc = Convert.ToDateTime(resultado["dataNasc"]);
c.endereco = Convert.ToString(resultado["endereco"]);
c.telefone = Convert.ToString(resultado["telefone"]);
c.telefone2 = Convert.ToString(resultado["telefone2"]);
lista.Add(c);
}
resultado.Close();
return lista;
}
}
}