如何实现NHibernate中的Inheritance Mapping(继承映射)策略?

2026-05-25 07:401阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3820个文字,预计阅读时间需要16分钟。

如何实现NHibernate中的Inheritance Mapping(继承映射)策略?

参考PoEAA,继承的设计模式包括:

1. Concrete Table Inheritance(具体表继承)

2.Single Table Inheritance(单表继承)

3.Class Table Inheritance(类表继承)

如何实现NHibernate中的Inheritance Mapping(继承映射)策略?

具体表继承:父类为接口或抽象类。

参考PoEAA,继承的设计模式有:Concrete Table Inheritance(具体表继承)、Single Table Inheritance(单表继承)、Class Table Inheritance(类表继承)

Concrete Table Inheritance:
父类为接口或抽象类,不需要存储,每一个子类使用一个独立的表。
这种设计在关系型数据库上处理多态关联、查询时很不方便,例如父类需要关联另外一个类时,所有子类的表都需要加入这个关联字段;如果其它类需要跟父类关联,则对应每一个子类需要添加一个外键(使用SQL,可以用1个字段去关联所有子类的表,但NHibernate的这种方式不支持,数据库也不能使用外键)
阅读全文

本文共计3820个文字,预计阅读时间需要16分钟。

如何实现NHibernate中的Inheritance Mapping(继承映射)策略?

参考PoEAA,继承的设计模式包括:

1. Concrete Table Inheritance(具体表继承)

2.Single Table Inheritance(单表继承)

3.Class Table Inheritance(类表继承)

如何实现NHibernate中的Inheritance Mapping(继承映射)策略?

具体表继承:父类为接口或抽象类。

参考PoEAA,继承的设计模式有:Concrete Table Inheritance(具体表继承)、Single Table Inheritance(单表继承)、Class Table Inheritance(类表继承)

Concrete Table Inheritance:
父类为接口或抽象类,不需要存储,每一个子类使用一个独立的表。
这种设计在关系型数据库上处理多态关联、查询时很不方便,例如父类需要关联另外一个类时,所有子类的表都需要加入这个关联字段;如果其它类需要跟父类关联,则对应每一个子类需要添加一个外键(使用SQL,可以用1个字段去关联所有子类的表,但NHibernate的这种方式不支持,数据库也不能使用外键)
阅读全文