Aplicativos remotos e de N camadas com LINQ to SQL
Você pode criar aplicativos de n camadas ou multicamadas que usam LINQ to SQL. Normalmente, o contexto de dados LINQ to SQL, as classes de entidade e a lógica de construção de consulta estão localizados na camada intermediária como a camada de acesso a dados (DAL). A lógica de negócios e quaisquer dados não persistentes podem ser implementados completamente em classes e métodos parciais de entidades e no contexto de dados, ou podem ser implementados em classes separadas.
O cliente ou a camada de apresentação chama métodos na interface remota da camada intermediária, e a DAL nessa camada executará consultas ou procedimentos armazenados que são mapeados para DataContext métodos. A camada intermediária retorna os dados aos clientes normalmente como representações XML de entidades ou objetos proxy.
Na camada intermediária, as entidades são criadas pelo contexto de dados, que rastreia seu estado e gerencia o carregamento diferido e o envio de alterações no banco de dados. Estas entidades estão "ligadas" ao DataContext
. No entanto, depois que as entidades são enviadas para outra camada por meio da serialização, elas se desanexam, o que significa que o DataContext
não está mais rastreando seu estado. As entidades que o cliente envia de volta para atualizações devem ser reanexadas ao contexto de dados antes que o LINQ to SQL possa enviar as alterações para o banco de dados. O cliente é responsável por fornecer valores originais e/ou carimbos de data/hora de volta para a camada intermediária, se estes forem necessários para verificações de simultaneidade otimistas.
Em ASP.NET aplicações, o gerencia a LinqDataSource maior parte dessa complexidade. Para obter mais informações, consulte Visão geral do controle de servidor Web LinqDataSource.
Recursos Adicionais
Para obter mais informações sobre como implementar aplicativos de n camadas que usam LINQ to SQL, consulte os seguintes tópicos:
Para obter mais informações sobre aplicativos de n camadas que usam ADO.NET DataSets, consulte Trabalhar com conjuntos de dados em aplicativos de n camadas.