如何将 LINQ-to-SQL 映射到 BLL 类?
Posted
技术标签:
【中文标题】如何将 LINQ-to-SQL 映射到 BLL 类?【英文标题】:How do you map LINQ-to-SQL to your BLL classes? 【发布时间】:2010-11-26 09:16:31 【问题描述】:我正在考虑使用 LINQ-to-SQL 在我的应用程序中创建 DAL。我通常手动创建 DAL,因为我不是 ORM 的忠实粉丝(IMO 抽象太多),但我试图为不耐烦的客户节省一些时间。
我的问题是,如何将 LINQ-to-SQL 生成的类映射到 BLL 类?您是否只是将代码添加到由 LINQ-to-SQL 生成的类(它们是部分类)并且根本不创建 BLL 类(因此该类既可以作为 DAL 类也可以作为 BLL 类工作)或者您通常如何做是吗?
谢谢
【问题讨论】:
【参考方案1】:重要的区别是认识到 LINQ to SQL 实际上有两个部分:您拥有的实体类 - 它们是在您的解决方案中生成或手写的 - 以及负责翻译 LINQ 繁重工作的 LINQ to SQL 库将表达式转换为 SQL 并投影结果。前者是你的 BLL,后者是你的 DAL。 LINQ to SQL 模型主要实现了这一点,因为 DAL 与实体无关(或 BLL 无关);并且您的实体与 DAL 的耦合非常松散;如有必要,它们可以完全脱离 DAL 使用。
因此,简短的回答是 LINQ to SQL 模型可以同时满足 DAL 和 BLL 角色,但仅仅因为您对两者使用一个模型并不意味着您不恰当地组合了这两个层。
【讨论】:
这回答了这个问题。非常感谢以上是关于如何将 LINQ-to-SQL 映射到 BLL 类?的主要内容,如果未能解决你的问题,请参考以下文章
C# |如何制作用于将数据从 DAL 传递到 BLL 的类实例(对象)
数据访问层 - LINQ-To-SQL 和泛型。我可以优化这个吗?