C# 使用ORM创建数据库

C# 使用ORM创建数据库,c#,.net,sql,vb.net,orm,C#,.net,Sql,Vb.net,Orm,是否有任何C#.NET ORM可以创建数据库? 至少能够创建MS+MySQL+PostGre+Oracle数据库。 我不是指表或模式,我只是指数据库。 我使用nHibernate,但它只能创建表和模式,查询/插入但不能创建数据库本身。这通常有点超出ORM的范围。创建一个与特定于应用程序的映射(权限、访问控制等)关系不大的数据库有很大的复杂性。有时ORM工具会生成从头开始创建数据库所需的DDL/语句,但这与实际创建数据库本身并不完全相同。 基于模型优先方法的极少数ORM之一 (来源:) 还要注意

是否有任何C#.NET ORM可以创建数据库?
至少能够创建MS+MySQL+PostGre+Oracle数据库。
我不是指表或模式,我只是指数据库。

我使用nHibernate,但它只能创建表和模式,查询/插入但不能创建数据库本身。

这通常有点超出ORM的范围。创建一个与特定于应用程序的映射(权限、访问控制等)关系不大的数据库有很大的复杂性。有时ORM工具会生成从头开始创建数据库所需的DDL/语句,但这与实际创建数据库本身并不完全相同。

基于模型优先方法的极少数ORM之一


(来源:)

还要注意,实体框架的未来版本应该支持模型优先的方法。

我已经使用了nHibernate的(nHibernate.Tool.hbm2ddl)SchemaExport特性从我的类和映射生成DDL

看看这些:


相关SO帖子:

更新:
看了你的评论后,我不太确定这是你需要的。不管怎样,只是为了提供信息。

-它是为模型优先的方法而设计的;它支持MS SQL、Oracle和PostgreSQL。MySQL支持已经计划好了

请参阅的一章-它解释了与运行时架构创建和升级相关的详细信息

与Signum框架(实际上与它所支持的方法非常接近)相比,DataObjects.Net几乎没有与映射相关的限制。例如,您可以使用复合主键\外键。它的另一个优点是



另外,我是它的作者之一。

嗯,通常不,ORM是相反的。你在寻找某种可视化数据库设计器吗?不,我在寻找一种工具,可以直接在客户处创建数据库,而无需我去那里,也无需客户了解DBs。。。最好是我只需要询问数据库类型,以及安装项目中的用户名+pw,然后自动创建db安装文件。我并不是说可视化数据库设计器+远程桌面+我的很多时间听起来你根本不想要ORM;您只需要一个跨平台的数据库创建者实用程序,它可能是也可能不是ORM包的一部分。这一点很重要,因为数据库创建部分规定如何从数据库中获取对象是非常愚蠢的,因为ORM知道映射和模式,它实际上能够处理这一点,尽管是的,这不是“ORM”的含义。但是有一些ORM工具能够做到这一点;此外,他们中的一些人甚至可以升级模式。关于数据库创建:一些工具创建模式,但到目前为止,我还没有看到能够创建数据库的工具……我怀疑模式导出可以做他想要的事情。请看,是的,创建工作在那里,但只适用于SQlite。当我用MS-SQL替换时,它不起作用。是的,这不是我需要的。此外,我非常怀疑使用system.data.sqlclient.sqlconnection,除了MS-SQL服务器之外,你还可以连接其他任何东西……不过,我的mySql是我的。db连接器可以为各种db引擎/服务器配置,尽管我还没有用ms sql尝试过。您的建议是为每个数据库编写一个连接器。那不是重点。看来我的应用程序终究不会是零conf…好吧,除了编辑我的问题的意义外,我将通过在这里推广你无用产品的咒骂和冒犯,并说我高度怀疑如果我只想要MS-SQL 2005&2008支持,我是否需要ORM包装器…嘿,我不是signum的创建者或推广人。我不介意你对我的答案投反对票,但这不应该影响signum或其创建者的声誉。如果我是signum的人,我为什么要在我的答案中包括实体框架呢。但我并不是投反对票的人,因为这与我的问题有着千丝万缕的联系。不幸的是,你似乎是唯一一个理解这个问题的人,我感到失望,因为似乎真的没有这样的工具,甚至没有付出代价。我只是注意到你也希望创建数据库本身。DataObjects.Net目前无法实现此功能,但我立即在我们的问题跟踪程序中发现了此功能请求:-因此很可能有一天会完成。顺便说一句,数据库创建确实有点棘手-这就是人们避免此操作的原因。例如,有必要指定数据库文件的放置位置(存储位置等),设置默认排序和编码等选项-这些选项中的大多数特定于特定的RDBMS,因此供应商避免以统一方式解决此问题。通常情况下,应用程序只处理一个(选定的)RDBMS,并且在不涉及ORM的情况下很容易为其实现数据库创建-这是供应商避免这种情况的另一个原因。因此,实际上,如果您选择ORM,我建议您更多地关注其他功能。这个问题(数据库创建)实际上只需要大约一天时间就可以由您自己解决。但其他ORM功能将被使用数周……好吧,那么看来nhibernate又多了一名开发人员;-))