我希望在我的下一个项目中使用Linq来减轻一些艰苦的劳动。在我深入学习Linq之前,我想听听关于最佳实践的建议。我还没有决定是否要使用EF和Linq to SQL。
我希望在我的下一个项目中使用Linq来减轻一些艰苦的劳动。在我深入学习Linq之前,我想听听关于最佳实践的建议。我还没有决定是否要使用EF和Linq to SQL。
首先,你需要定义你所说的“LINQ”的含义。根据问题的其余部分,我猜测你在询问Linq to SQL。
如果你指的是Linq to SQL,并且你正在开始一个新项目,我会建议第一个最佳实践是不要这样做,而是使用.NET中的Entity Framework。它比EF 1.0以及Linq to SQL都要好得多。自从发布了Visual Studio 2010和.NET 4以来,Linq to SQL应该被避免用于所有新项目。
我能给你的最大最佳实践是正确地设置数据库模型。正确规范化你的数据库。正确调整和索引你的数据库。基于这个正确创建的数据库构建EF模型,你将会很满意。如果你试图走捷径,或者你以某种非关系型对象存储的方式对数据库进行建模,你的生活将充满痛苦和折磨。
确保你团队中的每个人都理解延迟执行的概念以及它与查询生成和执行的关系。
了解IQueryable<>和IEnumerable<>之间的区别。这有点类似于前面的一点,但是当涉及到组合Linq查询时,了解IQueryable<>如何工作可以让你的生活变得更轻松。
了解延迟加载以及它对查询性能的影响。在适当的情况下使用它,并学习如何为最佳性能策略性地急切地加载对象。
了解每个查询的频率以及对负载的影响。你的一些最高频率的查询通常可以通过编译来受益,但大多数情况下你不需要这样做。