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