使用 LINQ to SQL 的 N 层和远程应用程序

可以创建使用 LINQ to SQL 的 n 层或多层应用程序。 通常,LINQ to SQL 数据上下文、实体类和查询构造逻辑位于中间层作为数据访问层(DAL)。 业务逻辑和任何非持久性数据都可以完全在实体的分部类和数据上下文中实现,也可以在单独的类中实现。

客户端或表示层调用中间层远程接口上的方法,该层上的 DAL 将执行映射到 DataContext 方法的查询或存储过程。 中间层将数据作为实体或代理对象的 XML 表示形式返回给客户端。

在中间层上,实体由数据上下文创建,该上下文跟踪其状态,并管理对数据库的更改的延迟加载和提交。 这些实体被“附加”到 DataContext。 但是,通过序列化将实体发送到另一层后,它们会分离,这意味着 DataContext 不再跟踪其状态。 客户端发送回来的实体在更新前必须重新连接到数据上下文,然后 LINQ to SQL 才能把更改提交到数据库。 如果需要进行乐观并发检查,客户端负责将原始值和/或时间戳传回中间层系统。

在 ASP.NET 应用程序中,LinqDataSource 负责处理大部分复杂性。 有关详细信息,请参阅 LinqDataSource Web 服务器控件概述

其他资源

有关如何实现使用 LINQ to SQL 的 n 层应用程序的详细信息,请参阅以下主题:

有关使用 ADO.NET 数据集的 n 层应用程序的详细信息,请参阅在 n 层应用程序中处理数据集

另请参阅