【问题标题】:LINQ to SQL - To Use or Not To Use that is the QuestionLINQ to SQL - 使用还是不使用这是个问题
【发布时间】:2010-08-10 17:33:46
【问题描述】:

我来自不同的语言,对于使用什么和不使用什么总是有不同的看法。您对为什么使用或不使用 LINQ to SQL 有何看法和利弊?

我还看到有一个 LINQ to NHibernate,如果你有 NHibernate,这值得使用吗?

我还没有安装 NHibernate。

谢谢

【问题讨论】:

  • 您可能想知道为什么 Microsoft 同时提供 LINQ-to-SQL 和实体框架。 Microsoft Data MVP Shawn Wildermuth 在他最近的文章Should You Be Looking for Trends in Microsoft Stories? 中提供了很好的解释。他在文章的第 2 段到最后一段中提到了 LINQ-to-SQL 和 EF。
  • 我在大公司工作,所以我不打算构建小型应用程序。我目前正在学习,所以我可以成为未来更好的计划。我有很多东西要学,以确保我和其他人在同一页上。

标签: linq-to-sql


【解决方案1】:

此时我可能不建议使用 LINQ to SQL。如果您正在进行新的开发,我会推荐 ADO.NET Entity Framework

这是 LINQ to SQL 的一个更流行、更积极开发的替代方案,因为它在未来得到了 Microsoft 的大量关注。

至于 LINQ to Nhibernate... 如果您已经计划使用 Nhibernate,那么这将为您提供 LINQ 的好处。我个人非常喜欢在我的项目中使用 LINQ,因为我发现它可以让我的代码更快地编写和更易于维护,所以我强烈推荐这个。但是,对于 .NET 开发,我可能仍然更喜欢 EF 而不是 Nhibernate(它内置在框架中,由 MS 等支持)。

【讨论】:

    【解决方案2】:

    这很难回答,不知道你想用它构建什么。

    对于小型项目,根据我的经验,您可以非常轻松地启动并运行 LINQ-to-SQL,并且易于使用。然而,它确实缺乏一些特性(我相信比如继承)。此外,Microsoft 已停止进一步开发 LINQ-to-SQL。

    微软目前的 ORM / Persistence Framework 是 Entity Framework 4。它正在由 MS 积极开发;它具有比 LINQ-to-SQL 更多的功能,并且被认为更适合企业级应用程序。使用 EF4,您可以在查询中使用 LINQ 表达式,就像使用 LINQ-to-SQL 一样。

    另一个选项是 NHibernate,我在当前项目中使用它,根据我的经验,它有点两全其美。它是开源的,它可能对您有一些价值。它很容易上手,但要准备好花一些时间学习更高级的概念。 LINQ-to-NHibernate 在我们使用的版本(2.x)中还不是很成熟,但我认为它在 3.0 中得到了很大的改进。您可以在 LINQ 中进行一些查询,但好处是,您将能够依靠非常强大的 HQL 或 Criterion API;当你需要它时。

    在我看来,这 3 个是目前 .NET 世界中最大的 ORM 竞争者。还有 Subsonic 或 Castle ActiveRecord;我没有经验;但它们应该适合小型项目。

    说了这么多,您需要仔细考虑您对 ORM 的要求,进行一些测试(编写一些 PoC 代码来模拟您将要执行的数据访问;看看设置起来有多么容易)。对此有简单的是/否答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-30
      • 1970-01-01
      • 2010-09-20
      • 1970-01-01
      • 2011-08-24
      • 2012-06-10
      • 1970-01-01
      相关资源
      最近更新 更多