什么是.NET中的JPA?

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

我想用jpa和C#这样的东西到mysql和sqlserver。

JPA不是Java ORM吗?

.NET有许多ORM工具,即

  • ADOentity framework
  • NHibernate的
  • 活跃记录
  • LINQ to SQL

再加上我最喜欢的

  • 光速

JPA只是持久性对象的规范,而不是它的实现。 您可以将静态视为与.NET相同,但您必须找到实现此规范的ORM

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

  • 维基百科
  • NPersistence

要回答“使用像Jpa和C#这样的东西”的部分我建议改变方法。 正如评论中所强调的那样,JPA是一组允许ORM互操作性的规范。

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

就像你要求在.NET中使用Java语言function一样(比如“ 我可以在.NET中实现匿名接口吗? ”)。 你必须忍受这样一个事实,即C#的事实上的标准JPA等价物目前不存在,因为1)有两个主要的ORM“供应商”(NHibernate和entity framework)和2)EF不采用NPA。

如果你需要MSSQL和MYSQL之间的数据库互操作性,那么上面两个开源产品中的一个就足够了,但这是一件值得学习的事情。

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

entity framework是您应该首先检查的。 它是微软推荐的。

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

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

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

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

.Net持久性Api在.Net中是等效的。 JPA及其.Net版本都是ORM供应商或开源社区可以实现的规范集。 Hibernate就是我们在.Net中拥有entity framework的实现之一。 当您在两个遵循JPA的ORM框架之间切换时,您不希望代码中的任何更改适应此更改,因为它们都遵循相同的基础规范。