linq-to-sql - 使用 dbml 进行 linq2sql 查询的优缺点是什么?

标签 linq-to-sql entities

我目前正在阅读 Pro Asp.Net MVC,他们正在手动构建所有 linq2sql 实体类,并将它们与 linq 映射属性进行映射。但是,我看到的其他所有人(来自谷歌搜索)谈论 linq 2 sql 似乎都在使用可视化设计器来构建他们所有的实体。哪种是构建 l2s 实体的首选方式,每种方式的优缺点是什么?

到目前为止,我注意到的唯一区别是,在使用可视化设计器时,我似乎无法进行继承映射,尽管 MSDN 说我应该能够这样做,所以我可能只是在 VS 2010 的界面中遗漏了它。但是,我不太确定我是否应该使用继承,因为当我不需要子表数据时,这可以在技术上添加额外的连接。

作为 PS,l2s 不会对我的架构进行任何修改,我将手动生成架构更改,然后在 linq2sql 中复制它们。

谢谢,

最佳答案

我们一直在使用设计师。它确实引入了一个额外的步骤,每次对架构进行更改时,您都需要再次将表导入设计器,但我认为,如果绕过设计器,与需要编写的代码量相比,这种效果就显得微不足道了。

另请注意,设计器会创建分部类,您可以为分部类创建一个附加文件,其中包含其他实现细节。这样,当表在设计器中被引用时,它会让你单独留下额外的代码。我们这样做是为了向类添加许多辅助函数,并提供覆盖原始整数 FK 字段的严格类型枚举属性。

继承确实很难很好地完成,但我认为如果你需要那种数据层,L2S 可能不是最好的解决方案。我更喜欢让我的数据层保持干净和简单,只是使用 L2S 将数据进出,然后在业务层中加入更复杂的逻辑。如果我们真的需要在我们的数据层做对象继承之类的事情,我可能会探索一种更高级更复杂的技术,比如EF

关于linq-to-sql - 使用 dbml 进行 linq2sql 查询的优缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2259894/

相关文章:

domain-driven-design - 在面向 DDD 的微服务中,基础设施和实体可以重用吗?

c# - 命名空间 'x' 已经包含了 'FixupCollection' 的定义

linq - 当字段需要首先解析时,如何在 linq 查询中进行过滤?

c# - 使用 WCF 序列化 linq 实体

c# - LINQ-to-SQL 中的记录级安全性

html - 如何在C中转义html实体?

xml - 在 XML 中使用 &、> 和 < 转义 "&"、 ">"和 "<"是否正确?

.net - 通过 LINQ 查询突破 Parallel.ForEach

linq-to-sql - 在不同表上使用相同类型的LINQ-to-SQL映射

java - 如何向企业解释为什么重构很重要