Usuário com melhor resposta
Dúvida DataServiceContext

Pergunta
-
Bom,
Estou utilizando o WCF Data Services e consegui acessar meu DataClasses do Linq To SQL no meu Client com sucesso, porém tenho uma dúvida meu projeto está utilizando metodos do meu DataClasses e eu não queria ter que mudar todos os metodos para DataServiceContext, exemplo SubmitChanges, InsertOnSubmit e etc.
Existe alguma forma de eu converter meu DataServiceContext para um DataContext normal do Linq To Sql?
Pois assim consigo reaproveitar todo meu projeto.
Obrigado.
Respostas
-
Boas Thiago,
Você pode utilizar esses vídeos para conhecer um pouco mais sobre as características de serviços WCF, e uma delas é a sincronização/concorrência: http://www.israelaece.com/post/WCF-Videos.aspx
Não entendi o que você disse neste parágrafo: "E por exemplo se eu utilizo um método saveChanges do meu WCF Data Services ele funciona exatamente igual o meu submitChanges do Linq To Sql?"
http://www.israelaece.com- Marcado como Resposta Thiago MDTech quinta-feira, 10 de junho de 2010 16:44
Todas as Respostas
-
-
Israel,
Bom vou demonstrar mais ou menos hoje o meu projeto está sem WCF e com Linq To SQl ou seja eu executo os metodos do DataClasses para fazer as modificações no banco de dados, exemplo:
DataContext.InsertOnSubmit(obj);
Gostaria de passar o meu DataClasses e meu mapeamento ORM criado pelo meu Linq To Sql para um serviço WCF, então tentei utilizar o WCF Data Services, porém quando eu consigo acessar o meu DataClasses normalmente para manipular o banco de dados ele me retorna o tipo DataServiceContext
em vez de um DataClasses normal, e isso pra mim é um grande problema pois meu projeto está utilizando todos os metodos de manipulação criados pelo Linq To Sql, mas agora com o WCF não tenho acesso a esses métodos.
-
Boas Thiago,
Se entendi bem, você tem que mudar a forma como você trabalha. Na verdade do teu contexto não deve ultrapassar os limites do serviço, ou seja, o serviço será uma "casca" em torno do teu contexto de acesso à dados, ficando algo como:
public class Servico
{
private DataContext _ctx; //inicializar
public class Adicionar(Produto produto)
{
_ctx.Produtos.InsertOnSubmit(obj):
_ctx.SubmitChanges();
}
}
Ou seja, terá que ter um método para cada ação CRUD. Por isso que eu sugeri a você analisar a viabilidade de utilizar WCF Data Services.
http://www.israelaece.com -
É então Israel, é exatamente isso que eu vi de problema quando acabei utilizando o WCF, não existe realmente nenhuma solução pra isso?
Pois senão pra mim fica inviavel utilizar o WCF Data Services, porém por necessidades de segurança e perfomance eu preciso criar urgente no meu projeto algo para a arquitetura cliente/servidor funcionar corretamente.
-
Boas Thiago,
Não há como passar o contexto. Se houvesse essa possibilidade, seria muito mais prático consumir a sua base de dados diretamente pela aplicação cliente.
Lembre-se, utilizar WCF Data Services, toda a exposição já é automática. O exemplo de código que coloquei acima, é somente quando se utilizar o WCF em sua forma "crua".
http://www.israelaece.com -
Israel,
Como não conheço muito do assunto, gostaria de fazer uma pergunta.
Como o WCF funciona na parte de concorrencia?
E por exemplo se eu utilizo um método saveChanges do meu WCF Data Services ele funciona exatamente igual o meu submitChanges do Linq To Sql?
Muito Obrigado pelos esclarecimentos.
-
Boas Thiago,
Você pode utilizar esses vídeos para conhecer um pouco mais sobre as características de serviços WCF, e uma delas é a sincronização/concorrência: http://www.israelaece.com/post/WCF-Videos.aspx
Não entendi o que você disse neste parágrafo: "E por exemplo se eu utilizo um método saveChanges do meu WCF Data Services ele funciona exatamente igual o meu submitChanges do Linq To Sql?"
http://www.israelaece.com- Marcado como Resposta Thiago MDTech quinta-feira, 10 de junho de 2010 16:44