Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vinícius Camilo

linq to sql

Recommended Posts

Bom dia senhores programadores...

 

Como o LINQ é uma tecnologia muito nova de acesso à dados o que não faltam são dúvidas

 

Estou tentando rodar uma aplicação em VS 2008 - VB 9 com três camadas na qual eu quero trabalhar com os dados off-line para dar ao usuário a opção de salvar ou cancelar no gridview.

 

A questão é a seguinte, porque quando relaciono a query do LINQ com o datasource do BindingSource ele trava de um modo de que eu não consigo editar, nem mesmo que seja off-line.

 

Eu ainda não programei a opção de salvar, porque pra isso eu preciso dar a opção de o usuário editar no grid... que é o principal problema

 

Segue o código abaixo:

 

CAMADA APRESENTAÇÃO

 

CODE
Private Sub frmOrdemPastas_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

 

'Dim db As New dtIOffice

 

'Dim Pastas = From op In db.OrdemPastas _

' From gp In db.GrupoPastas _

' Order By op.numOrdem _

' Where op.idGrupoPastas = gp.idGrupoPasta _

' Select op.idOrdemPasta, gp.NomeGrupo, op.numOrdem, op.Objeto

 

'bsOrdemPasta.DataSource = Pastas

bsOrdemPasta.DataSource = CamadaDadosLinq.dados.PastasPadrao

'dgvOrdemPasta.DataSource = bsPastas

dgvOrdemPasta = Excepcionalidades.CarregaPastas(dgvOrdemPasta)

 

End Sub

CAMADA DADOS - Nesse caso a dor de cabeça foi tanta que to buscando os dados sem a camada de negócios

 

CODE
Public Shared Function PastasPadrao()

Dim db As New dtIOffice

Dim Pastas = From op In db.OrdemPastas _

From gp In db.GrupoPastas _

Order By op.numOrdem _

Where op.idGrupoPastas = gp.idGrupoPasta _

Select op.idOrdemPasta, gp.NomeGrupo, op.numOrdem, op.Objeto

 

Return Pastas

End Function

Agradeço desde já http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vinícius ainda não desenvolvi nada, mas pesquisando achei um artigo no site do Macoratti onde ele trabalha com edição de dados na Grid utilizando o LINQ. Espero que sirva: http://www.macoratti.net/07/12/aspn_lq1.htm

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tinha tirado algumas coisas como base do Macoratti, mas percebi que há algumas linhas de comando faltando no tópico, hoje, em razão do tempo, estou usando Linq to dataset, que utiliza ainda alguns conceitos do dataset. Mas fica claro que o LINQ até por questão de desempenho e praticidade tende a crescer cada vez mais.

 

Obrigado pela ajuda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tinha tirado algumas coisas como base do Macoratti, mas percebi que há algumas linhas de comando faltando no tópico, hoje, em razão do tempo, estou usando Linq to dataset, que utiliza ainda alguns conceitos do dataset. Mas fica claro que o LINQ até por questão de desempenho e praticidade tende a crescer cada vez mais.

 

Obrigado pela ajuda...

Vinícius, realmente, reforçando a tua própria constatação: O LINQ, quando utilizado com SELECT discriminando campos, impede a atualização no database. Isso não está documentado, ou, pelo menos, não é muito explícito. Por outro lado, me parece que isso torna o uso do LINQ ainda muito limitado. Afinal, inúmeras vezes o DataGridView terá que apresentar campos de outras tabelas, ou até campos calculados. Talvez a solução adequada seja essa mesmo que você adotou, mas é uma pena.

 

Além disso, outra dificuldade de trabalhar offline, ou, mais precisamente, no esquema de interface que permite "Gravar" e "Anular", reside na recuperação dos dados originais, caso o usuário decida "anular" o input. Existe o tal do "ieditableobject" que necessita ser implementado na classe dos dados onde se fará o beginedit() e/ou canceledit(). Será que não existe uma forma genérica mais direta ?

 

Dany

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.