Linq to sql Linq2Sql最佳实践

Linq to sql Linq2Sql最佳实践,linq-to-sql,Linq To Sql,我最近正在迁移到Linq2Sql,我未来的所有项目都将使用Linq2Sql。话虽如此,我对如何在应用程序设计中正确插入Linq2Sql进行了大量研究 在哪一层放什么 如何设计存储库和业务层服务 我应该在交互层的Linq2Sql实体上使用DTO吗 我应该注意什么事情 你遇到了什么问题 我并没有发现任何坚如磐石的材料真正谈论一件事,每个人都有自己的观点。我期待着您提出关于如何在项目中集成/使用Linq2Sql的想法。我的首要任务是维护[它应该是可维护的,并且当多人在同一个项目上工作时]和可伸缩性

我最近正在迁移到Linq2Sql,我未来的所有项目都将使用Linq2Sql。话虽如此,我对如何在应用程序设计中正确插入Linq2Sql进行了大量研究

  • 在哪一层放什么
  • 如何设计存储库和业务层服务
  • 我应该在交互层的Linq2Sql实体上使用DTO吗
  • 我应该注意什么事情
  • 你遇到了什么问题
我并没有发现任何坚如磐石的材料真正谈论一件事,每个人都有自己的观点。我期待着您提出关于如何在项目中集成/使用Linq2Sql的想法。我的首要任务是维护[它应该是可维护的,并且当多人在同一个项目上工作时]和可伸缩性[它应该有进化的范围]


谢谢。

在过去两年半的生产应用程序中,我一直在使用linq to entities,我可以说这是一次非常好的体验。。。但这并不意味着你应该和Linq一起做每件事

我想给你一些问题的答案

我想你应该先问你想创建什么样的应用程序;一旦场景清楚了,您将对要对数据库(或存储库)执行的事务或查询的数量有一个奇怪的想法

Linq在抽象数据访问、上下文和实体处理方面可能非常有用,但一切都是有代价的。创建对象需要一定的成本,您确实需要考虑这一点

如果您的应用程序具有“不太重”的数据访问功能,Linq将是为您的应用程序节省时间的完美工具

如果您的应用程序完全基于数据提取或处理,Linq也会很好

如果您的应用程序正在处理巨大的数据块(请检查您的应用程序),您将需要执行其他操作,以避免创建一堆可能无用的对象

这意味着什么?您需要知道智能数据访问意味着什么。。。这就是让SQL为您工作(在SQL的情况下);如果要进行大量的关节、交叉信息和其他工作,请创建存储过程,为您创建数据结果,然后使用Linq或SqlCommand或SqlDataAdapters等获取数据结果

在哪一层放置什么? 由于Linq为您提供了数据访问抽象,您几乎可以将代码放在业务逻辑需要的地方。关于如何构造代码,有很多好的实践;Linq(与任何其他实体框架或数据访问库一样)将适合这个位置。 尽可能避免在控件中直接使用linq表达式(asp.net中有许多带有linq数据源的控件),而是使用服务类包装“查询”,该类可以由代码或控件实例化为对象数据源

我找到了什么? 在大型应用程序或项目中,纯Linq并不总是可行的(因此,在Linq中会有很多东西,在以前更简单的解决方案中也会有一些东西可以访问您的存储库),但它可以帮助您节省时间。 如果您想提供高质量的应用程序,实现存储过程是必须的

希望这一评论能有所帮助。
干杯。

在过去两年半的生产应用程序中,我一直在使用linq to entities,我可以说这是一次非常好的体验。。。但这并不意味着你应该和Linq一起做每件事

我想给你一些问题的答案

我想你应该先问你想创建什么样的应用程序;一旦场景清楚了,您将对要对数据库(或存储库)执行的事务或查询的数量有一个奇怪的想法

Linq在抽象数据访问、上下文和实体处理方面可能非常有用,但一切都是有代价的。创建对象需要一定的成本,您确实需要考虑这一点

如果您的应用程序具有“不太重”的数据访问功能,Linq将是为您的应用程序节省时间的完美工具

如果您的应用程序完全基于数据提取或处理,Linq也会很好

如果您的应用程序正在处理巨大的数据块(请检查您的应用程序),您将需要执行其他操作,以避免创建一堆可能无用的对象

这意味着什么?您需要知道智能数据访问意味着什么。。。这就是让SQL为您工作(在SQL的情况下);如果要进行大量的关节、交叉信息和其他工作,请创建存储过程,为您创建数据结果,然后使用Linq或SqlCommand或SqlDataAdapters等获取数据结果

在哪一层放置什么? 由于Linq为您提供了数据访问抽象,您几乎可以将代码放在业务逻辑需要的地方。关于如何构造代码,有很多好的实践;Linq(与任何其他实体框架或数据访问库一样)将适合这个位置。 尽可能避免在控件中直接使用linq表达式(asp.net中有许多带有linq数据源的控件),而是使用服务类包装“查询”,该类可以由代码或控件实例化为对象数据源

我找到了什么? 在大型应用程序或项目中,纯Linq并不总是可行的(因此,在Linq中会有很多东西,在以前更简单的解决方案中也会有一些东西可以访问您的存储库),但它可以帮助您节省时间。 如果您想提供高质量的应用程序,实现存储过程是必须的

希望这一评论能有所帮助。
干杯。

顺便说一句,如果您想要在.net framework中进行扩展,那么应该使用Linq到实体而不是Linq到SQL。这取决于您所说的“sca”是什么意思