项目作者: hunghq

项目描述 :
Convert NHibernate XML mapping to Code mapping
高级语言: C#
项目地址: git://github.com/hunghq/hbm2code.git
创建时间: 2019-08-12T15:36:45Z
项目社区:https://github.com/hunghq/hbm2code

开源协议:GNU General Public License v3.0

下载


hbm2code

forthebadge forthebadge

Convert NHibernate XML mapping to Code mapping

Build status

How it works

Input Hbm mapping files

  1. <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  2. <class name="Worker" abstract="true">
  3. <id name="Id" type="Int64">
  4. <generator class="assigned" ></generator>
  5. </id>
  6. <discriminator column="Type" ></discriminator>
  7. <property name="Name" ></property>
  8. </class>
  9. <subclass discriminator-value="DW" name="DomesticWorker">
  10. <property name="SocialSecurityNo" ></property>
  11. </subclass>
  12. <subclass discriminator-value="FW" name="ForeignWorker">
  13. <property name="PassportNo" ></property>
  14. </subclass>
  15. </hibernate-mapping>

Output Classes with Mapping by Code

  1. public class WorkerMap : ClassMapping<Worker>
  2. {
  3. public WorkerMap()
  4. {
  5. Abstract(true);
  6. Table("Worker");
  7. Id(x => x.Id, m =>
  8. {
  9. m.Generator(Generators.Assigned);
  10. m.Type(NHibernateUtil.Int64);
  11. });
  12. Discriminator(m =>
  13. {
  14. m.Column("Type");
  15. });
  16. Property(x => x.Name, m =>
  17. {
  18. });
  19. }
  20. }
  21. public class DomesticWorkerMap : SubclassMapping<DomesticWorker>
  22. {
  23. public DomesticWorkerMap()
  24. {
  25. DiscriminatorValue("DW");
  26. Property(x => x.SocialSecurityNo, m =>
  27. {
  28. });
  29. }
  30. }
  31. public class ForeignWorkerMap : SubclassMapping<ForeignWorker>
  32. {
  33. public ForeignWorkerMap()
  34. {
  35. DiscriminatorValue("FW");
  36. Property(x => x.PassportNo, m =>
  37. {
  38. });
  39. }
  40. }