【问题标题】:Please suggest one .Net ORM, which supports runtime schema evolution请推荐一个.Net ORM,它支持运行时模式演变
【发布时间】:2010-07-27 15:08:38
【问题描述】:

所有 RDBMS 都支持 ALTER TABLE 命令,该命令允许管理员向表中添加新列,或更改现有列的类型。

我正在.Net ORM 中寻找这样的运行时模式演化函数。我浏览了一些 ORM 框架,但我找不到针对这种演变的直观解决方案。最接近的是 OpenAccess (http://www.telerik.com/products/orm/features.aspx#runtime-changes)。在 OpenAccess 中,您可能有人工字段/类型,但您使用不同的方式来访问它们。换句话说,它们不同于预定义的属性/类。这不是我所期望的,并且与 ALTER Table 所做的不同。

顺便说一句,Versant 对象数据库宣布它具有 DYNAMIC DATABASE SCHEMA EVOLUTION (http://www.versant.com/en_US/products/objectdatabase/index/) 的功能。

如果你找到这样的框架,或者你有一些解决方案。请通知我。

提前谢谢你。

【问题讨论】:

  • 要明确一点 - 您是否在寻找“模型优先”类型的方法?一个你定义你的模型然后它创建你的模式的地方?因此想要一些允许您以(相对)安全的方式更改模型并重新定义架构的东西?
  • 不,你误解了我的意思。我不是在寻找设计时功能,它与“模型优先”关系不大。即使在运行时也很容易创建/更改模式。但是很难以与普通预定义的方式无关的方式访问新生成的字段/表,这正是我正在寻找的。颖
  • 我也在找这个。如果您发现这样的事情,请发布。

标签: .net schema orm


【解决方案1】:

使用 Telerik OpenAccess ORM,您可以根据您的模型随时更改架构 - 因此,如果您的模型从代表数据库实际情况的模型更改,您只需向数据上下文询问架构更新处理程序(通过 API 的入口点),它将: a) 返回一个代表更新脚本的字符串 b) 您可以随时执行返回的脚本

无论如何,请看一下(您可以下载试用版并在试用期内提出支持请求),因为我们也有兴趣进一步开发这项技术。

【讨论】:

  • 是的,OpenAccess 确实支持架构更改,但我们必须以不同于普通预定义的方式访问新生成的字段/类型。
  • 确实如此,但否则将很难做到这一点,因为动态添加的类型和字段根本不是微不足道的。我相信还有第二种更直接的方法直接使用元数据容器(这是我们添加的所有新 API 的基线),但由于到目前为止它还没有针对文档的官方部分进行完善,您应该打开一个支持案例,以便他们可以为此提供帮助(如果您唯一关心的是用于人工类型和字段的 API 本身)。
【解决方案2】:

你看过nhibernate吗?

【讨论】:

  • 是的,没找到这样的功能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-23
  • 2017-08-15
  • 2010-11-03
  • 1970-01-01
  • 2011-05-21
相关资源
最近更新 更多