none
Dúvida DataServiceContext RRS feed

  • 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.

    terça-feira, 1 de junho de 2010 01:51

Respostas

Todas as Respostas

  • Boas Thiago,

    Poderia explicar melhor, por favor?
    http://www.israelaece.com
    quarta-feira, 2 de junho de 2010 11:22
    Moderador
  • 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.

    quarta-feira, 2 de junho de 2010 14:40
  • 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
    quarta-feira, 2 de junho de 2010 15:15
    Moderador
  • É 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.

     

    Eu tive uma ideia mas creio que é um pouco inviavel, mas é na minha interface do serviço criar exatamente os metodos iguais que o Linq to Sql cria mas o server é quem faz acesso diretamente no Banco de Dados. O que voce acha?
    quarta-feira, 2 de junho de 2010 15:41
  • 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
    quarta-feira, 2 de junho de 2010 15:49
    Moderador
  • 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.

    quarta-feira, 2 de junho de 2010 16:03
  • 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
    quarta-feira, 2 de junho de 2010 19:39
    Moderador