Array
(
)

Linq to SQL na mão

Paulo
   - 08 nov 2011

Alguém sabe onde encontro ou tem informações de como configurar o Linq sem interface gráfica?
Obrigado!

Victor Fructuoso
   - 08 nov 2011

De que nivel de configuração estamos falando? Definir endereço de servidor, usuário, senha? Se for isso na própria classe do linq você pode setar essas propriedades.

Paulo
   - 08 nov 2011

Então, é uma aplicação web (asp.net mvc 3) onde já tenho uma classe de conexão e consigo buscar dados do banco (tudo configurado a parte da aplicação com o banco).

Agora, quero pegar o que fiz via SQL (na camada DAL) e usar o Linq.
Ainda não encontrei como fazer isso via código, vejo muitos tuts usando interface gráfica com tudo integrado, mas estou gerenciando a base de dados separado do VS, e queria ver como faz para criar o vínculo ORM codificando mesmo.

Estou usando postgres (Npgsql).
Valeu!

Paulo
   - 09 nov 2011


Consegui. Criei um diretório DataContext e coloquei a classe da referência baseado no que é gerado via interface gráfica, mas sem os arquivos que a mesma usa.

Segue abaixo a solução. Só não esqueçam de fazer o mapeamento (annotations) dos campos da tabela com a classe da entidade (no caso aqui é Usuario).

Obrigado pela atenção.
abs

#Códigousing System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Data;
using System.Collections.Generic;
using System.Reflection;
using System.Linq;
using System.Linq.Expressions;
using System.ComponentModel;
using System;
using MinhaApp.Models.VO;

namespace MinhaApp.DataContext {

public class MinhaDB : System.Data.Linq.DataContext {

/*public MinhaDB(string connectionString)
: base(connectionString)
{
//nothing here
}*/

private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();
/*
#region Extensibility Method Definitions
partial void OnCreated();
#endregion
*/

public MinhaDB(string connection) : base(connection, mappingSource) {
//OnCreated();
}

public MinhaDB(System.Data.IDbConnection connection) : base(connection, mappingSource) {
//OnCreated();
}

public MinhaDB(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) : base(connection, mappingSource) {
//OnCreated();
}

public MinhaDB(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) : base(connection, mappingSource) {
//OnCreated();
}

public Table<Usuario> Usuario;

}
}

Paulo
   - 09 nov 2011

Consegui. Criei um diretório DataContext e coloquei a classe da referência baseado no que é gerado via interface gráfica, mas sem os arquivos que a mesma usa.

Segue abaixo a solução. Só não esqueçam de fazer o mapeamento (annotations) dos campos da tabela com a classe da entidade (no caso aqui é Usuario). Obs forte: só rolou com SQLServer.

Obrigado pela atenção.
abs

#Códigousing System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Data;
using System.Collections.Generic;
using System.Reflection;
using System.Linq;
using System.Linq.Expressions;
using System.ComponentModel;
using System;
using MinhaApp.Models.VO;

namespace MinhaApp.DataContext {

public class MinhaDB : System.Data.Linq.DataContext {

/*public MinhaDB(string connectionString)
: base(connectionString)
{
//nothing here
}*/

private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();
/*
#region Extensibility Method Definitions
partial void OnCreated();
#endregion
*/

public MinhaDB(string connection) : base(connection, mappingSource) {
//OnCreated();
}

public MinhaDB(System.Data.IDbConnection connection) : base(connection, mappingSource) {
//OnCreated();
}

public MinhaDB(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) : base(connection, mappingSource) {
//OnCreated();
}

public MinhaDB(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) : base(connection, mappingSource) {
//OnCreated();
}

public Table<Usuario> Usuario;

}
}