是否有一个用于C#的ORM工具可以“黑盒子”数据库?

时间:2009-10-01 21:33:02

标签: c# orm poco

我创建了一堆POCO,我想创建一个持久层。事实上,我真的不在乎数据是如何存储在SQL Server中的,我只是希望它存储起来。换句话说,我想告诉ORM工具,“这是一些POCO类,保存它们。”并且不必做任何事情。是否有任何可以做到这一点的C#ORM工具?我一直在努力让Fluent NHibernate工作,而且Subsonic不支持人际关系,这使得像“为一个帖子获取所有评论”这样的事情非常困难。它需要能够自动生成数据库模式,而不必设置一堆属性和诸如此类的东西。

5 个答案:

答案 0 :(得分:6)

你可以试试DataObjects.Net,但这并不是你想要的。首先它的实体不是poco,你必须从某些基类型继承它们。其次,您应该使用特殊属性标记要保存的字段。

那么为什么我推荐DataObjects呢?因为我认为它是完全黑盒数据库。你只需要制作一堆对象并让ORM保存它们。

  • 它在运行时自动在指定的RDBMS中生成数据库模式。
  • 您不必调用.Save()之类的方法来保存更改,只需像使用常规对象一样工作。
  • 您不必编写SQL查询 - 它完全支持LINQ。
  • 即使将现有数据库升级到下一版本,也不必处理SQL脚本。

答案 1 :(得分:2)

我个人使用Fluent NHibernate,它可以满足您的需求。好吧,差不多。有需要手动指定ManyToMany但你无法避免它。如果你想要好的实体设计,你必须让一些成员私有,这会禁用这些成员的自动化。尽管如此,我改变了我的设计并且从未想过我的数据库是如何改变的(这是一个新项目的奢侈品,但......)。

你看过Castle ActiveRecord吗?你真的需要真正的POCO,或者你可以使用属性和。保存实体吗?好吧,我会避免这种情况,但它可能适合你。

答案 2 :(得分:1)

结帐Subsonics SimpleRepository。创建一个类,创建一个数据库,为Subsonic提供一个连接字符串,然后处理剩下的事情。漂亮的。

答案 3 :(得分:0)

如果你不关心它的存储方式比SQL Server的存储方式?怎么样的couchDB http://couchdb.apache.org/docs/intro.html

答案 4 :(得分:0)

看看DevExpress的eXpress Persistent Objects