Array
(
)

Inserir dados com LINQ to SQL

Pjava
   - 02 jan 2013

Pessoal, fiz esse código e não sei o que devo colocar após o DB no try e nem sei está correto o que eu estou fazendo.
public bool InserirUsuario(string nomeUsuario,string emailUsuario,string codigoAcesso,string tipoUsuario,int idGestor)
{
DataContext db = new DataContext(conexao.Conexao());
TBUsuario usuario = new TBUsuario();
{
usuario.NOME_USUARIO = nomeUsuario;
usuario.EMAIL_USUARIO = emailUsuario;
usuario.CODIGO_ACESSO = codigoAcesso;
usuario.TIPO_USUARIO = tipoUsuario;
usuario.ID_GESTOR = idGestor;
};
try
{
db.O QUE EU COLOCO AQUI.InsertOnSubmit(usuario);
db.SubmitChanges();
}
finally
{ }
return true;
}

Robson Robsonalves.net
   - 02 jan 2013

Existem algumas coisas que você esqueceu, como a instância da tabela além do context;

Segue um exemplo do Marcoratti:

http://www.macoratti.net/10/05/c_ulinq.htm

Robson Robsonalves.net
   - 02 jan 2013

A solução feita por ele é legal.
Mas você pode reutilizar grande parte do código utilizando Generics.

Depois que você entender bem o conceito do Linq to SQL, veja:

http://www.c-sharpcorner.com/uploadfile/scottlysle/generic-data-access-using-linq-to-sql-and-C-Sharp/

Pjava
   - 03 jan 2013

Eu estou estudando o livro Visual C# 2010 de John Sharp. Bem, criei a minha classe de Contexto assim:
......
namespace MedicalService
{
public class MedicalService: DataContext
{
public Table<TBUsuario> Usuarios;
public Table<TBAgenda> Agendas;
public Table<TBAgendamento> Agendamentos;
public Table<TBClinica> Clinicas;
public Table<TBEnderecoClinica> EnderecoClinicas;
public Table<TBEspecialidade> Especialidades;
public Table<TBEspecialidadeMedico> EspecialidadeMedico;
public Table<TBFuncao> Funcao;
public Table<TBGestor> Gestor;
public Table<TBPaciente> Paciente;
public Table<TBSetor> Setor;
public Table<TBStaff> Staff;
public Table<TBUf> Uf;

public MedicalService(string connectionInfo)
: base(connectionInfo)
{ }

}
}

Bem, após criar a classe DataContext, conforme acima, continua não aceitando a variável Usuarios, no me DB(Minha variável de Contexto), assim:
public bool InserirUsuario(string nomeUsuario,string emailUsuario,string codigoAcesso,string tipoUsuario,int idGestor)
{
MedicalServiceDataContext db = new MedicalServiceDataContext(conexao.Conexao());
TBUsuario usuario = new TBUsuario();
{
usuario.NOME_USUARIO = nomeUsuario;
usuario.EMAIL_USUARIO = emailUsuario;
usuario.CODIGO_ACESSO = codigoAcesso;
usuario.TIPO_USUARIO = tipoUsuario;
usuario.ID_GESTOR = idGestor;
};

try
{
db.Usuarios.InsertOnSubmit(usuario);//DÁ O ERRO EM Usuarios, MAS ELE EXISTE NA CLASSE DE CONTEXTO
db.SubmitChanges();
}
finally
{ }

return true;
}
Como eu resolvo isso?

Robson Robsonalves.net
   - 03 jan 2013

Qual é erro?

Rômulo Costa
   - 03 jan 2013

Verificou se o ID do usuario esta com identity na tabela ??

Pjava
   - 03 jan 2013

O erro é esse:

MedicalService.MedicalServiceDataContext' does not contain a definition for 'Usuarios' and no extension method 'Usuarios' accepting a first argument of type 'MedicalService.MedicalServiceDataContext' could be found (are you missing a using directive or an assembly reference?) D:\Projetos\MedicalService\MedicalService\BD\InserirBD.cs