亚音速poco类的扩展方法?

时间:2011-02-09 13:05:38

标签: fluent-nhibernate subsonic subsonic3

我正在考虑从流利的nhibernate切换到亚音速,因为nhib似乎有一个MASSIVE内存占用,我真的不喜欢,但我只想检查亚音速(可能是简单的存储库)应该如何应对:< / p>

  • 向数据库添加额外字段:目前我可以将字典值映射到数据库中非常酷的字段,这在亚音速下是否可行? (或类似的东西?)

    FWIW:DynamicComponent(x =&gt; x.PropertyBag,GetDynamicComponentPart);其中propertybag是一个字典。

  • 多对多关系

  • 级联保存/删除
  • 将复杂对象映射到xml或varchar(max)列(显然将其分解为xml)

1 个答案:

答案 0 :(得分:2)

* adding extra fields to a database: at the moment I can map a
     

字典值到一个字段中   这个非常酷的数据库   可能在亚音速? (或任何东西   相似?)

  FWIW: DynamicComponent(x => x.PropertyBag,
     

GetDynamicComponentPart);哪里   propertybag是一个字典。

添加字段非常简单。只需将该字段添加到表中,然后从T4模板重新生成类。

但是,除了基本的原始类型之外,你不会获得任何映射。当然不是字段中的字典。

* many to many relationships

您必须对T4模板进行自定义修改才能获得对多对多表的任何形式的支持。 SubSonic就像对待任何其他桌子一样对待它们。

我做了这些修改,但它们的用处有限。

* cascading saves/deletes

仅在RDBMS方面。也就是说,如果您使用级联设置外键关系。 SubSonic不做任何此事。

* mapping a complex object to an xml or varchar(max) column (seralize
     

显然是xml)

不。你得不到这样的支持。没有可扩展性钩子来插入您自己的类型转换器。

SubSonic与NHibernate完全不同。我会称NHIB为ORM,但我不会称之为SubSonic。 SubSonic的作者Rob Conery将其称为查询工具。

这是非常简单化的,这是它的目标和力量(以及弱点)。它以强类型的方式帮助查询和修改。与NHib甚至实体框架相比,它缺乏大量的功能和可配置性/可扩展性。

我会警告不要从NHib转移到SS,特别是如果你已经在NHibernate中实现了任何功能。并不是说SS是一个糟糕的工具,但它有很多限制。