【问题标题】:What is the equivalent of a JPA implementation in .NET?.NET 中的 JPA 实现等价物是什么?
【发布时间】:2010-05-03 05:41:00
【问题描述】:

我认为 JPA 既方便又好用(更不用说标准化了,因为我们曾经让每个程序员都通过 jdbc 连接做他/她自己的事情)。

我想将 jpa 之类的东西与 C# 一起用于 mysql 和 sqlserver。

【问题讨论】:

  • 是这样吗?我认为 JPA 是一个规范?
  • 是的,JPA 是一个规范,还有一些具体的类允许开发人员访问他们选择的实现,而无需使用任何特定于实现的代码......除非他们愿意。 Java 有一些这样的规范。其他示例包括用于 XML 编组/解组的 JAXB 和用于 XML 转换、验证、查询等的 JAXP。有用的东西。

标签: c# .net jpa


【解决方案1】:

JPA 只是持久性对象的规范,而不是它的实现。您可以看到 npersistence 与 .NET 上的等效,但您还必须找到实现此规范的 ORM

【讨论】:

    【解决方案2】:

    JPA 不就是一个 Java ORM 吗?

    .NET 有很多 ORM 工具,即

    加上我最喜欢的

    【讨论】:

    • SubSonic 也值得上榜。
    • Active Record 是 Castle Active Record,它位于 NHibernate 之上。 FluentNHibernate 是另一个位于 NHibernate 之上的选项。
    • JPA 是 ORM 应该实现的规范。它本身不是 ORM。
    • 这个答案是误导和错误的! JPA 不是 ORM,它是 ORM 的 SPECIFICATION,这是非常不同的!
    • JPA 不是 ORM 而是规范。 JPA的ORM实现有很多,比如eclipselink和hibernate都实现了。
    【解决方案3】:

    要回答 “在 C# 中使用 jpa 之类的东西”部分,我建议更改方法。正如 cmets 中强调的那样,JPA 是一组允许 ORM 互操作性的规范。

    虽然 NPeristence 存在,试图填补 Java 和 C# 之间的空白,但当行业不采用它作为标准 API 时,使用 “又一个 JPA” 是没有意义的。

    这就像您要求在 .NET 中使用 Java 语言功能(例如“can I implement an anonymous interface in .NET?”)。您必须接受这样一个事实,即目前不存在与 C# 等效的事实上的标准 JPA,因为 1) 有两个主要的 ORM“供应商”(NHibernate 和实体框架)和 2) EF 不采用 NPA。

    如果您需要 MSSQL 和 MYSQL 之间的数据库互操作性,上述两个开源产品中的一个就足够了,但需要学习。

    我的老板说要学习 Java,我必须开始忘记 C#。我建议您反其道而行之:理清思路,从头开始,看看是否有强大的工具可以满足您的需求。

    【讨论】:

      【解决方案4】:

      存在 C# 的等价物,它被称为 NPA (.NET Persistence API),这里有一些链接:

      【讨论】:

      • 自 5 年前明显推出以来,该产品已死并且从未真正获得过任何关注
      【解决方案5】:

      您应该首先检查实体框架。微软推荐。

      其他流行的选项包括 NHibernate 或 DBLinq。

      http://community.jboss.org/wiki/NHibernateforNET

      http://www.nhforge.org(更高版本)

      http://code.google.com/p/dblinq2007/

      【讨论】:

      • Entity Framework 是微软的产品,所以当然是他们推荐的。
      【解决方案6】:

      .Net Persistence Api 在 .Net 中是等价的。 JPA 及其 .Net 对应物都是 ORM 供应商或开源社区可以实施的一组规范。 Hibernate 是其中一种实现,就像我们在 .Net 中拥有实体框架一样。当您在遵循 JPA 的两个 ORM 框架之间切换时,您不会期望代码中的任何更改来适应这种更改,因为它们都遵循相同的底层规范。

      【讨论】:

        猜你喜欢
        • 2010-10-02
        • 2020-10-05
        • 1970-01-01
        • 1970-01-01
        • 2011-06-05
        • 2014-06-29
        • 2011-10-13
        • 2011-03-23
        相关资源
        最近更新 更多