2016-09-18 55 views
0

我正在尋找任何如何或文檔關於使用FluentNHibernate Embeddable準確地在Hibernate中。有沒有什麼辦法可以在FluentNHibernate中與Embeddable一起工作,如果沒有,有什麼最好的方法來模擬這個?在FluentNHibernate中使用Embeddable嗎?

回答

0

最後我找到了一些解決方案。它非常簡單,像JPA/Hibernate的Embeddable

這裏找到:https://github.com/jagregory/fluent-nhibernate/wiki/Fluent-mapping#components

然後我做了。

public class Cliente { 

     public virtual long id       { set; get; } 
     public virtual long codigo      { set; get; } 
     public virtual String nome      { set; get; } 
     public virtual String sexo      { set; get; } 
     public virtual String cpf      { set; get; } 
     public virtual String rg      { set; get; } 
     public virtual DateTime dtNascimento   { set; get; } 
     public virtual Endereco endereco    { set; get; } //Embeddable 

     public Cliente() { } 
    } 



public class Endereco { 

     public String endereco; 
     public String numero; 
     public String bairro; 
     public String complemento; 
     public String cidade; 
     public String cep; 
     public EstadosBrasil uf; 

     public Endereco() {    
     } 
    } 

映射

public class ClienteMap : ClassMap<Cliente> { 
     public ClienteMap() { 
      Table("CLIENTE"); 
      Id(c => c.id).GeneratedBy.Native(); 
      Map(c => c.codigo); 
      Map(c => c.nome); 
      Map(c => c.sexo).Length(2); 
      Map(c => c.cpf); 
      Map(c => c.rg); 
      Map(c => c.dtNascimento).CustomType<DateTime>(); 
      //embeddable 
      Component(c => c.endereco, e => { 
              e.Map(c => c.endereco); 
              e.Map(c => c.numero).CustomType<int>(); 
              e.Map(c => c.bairro); 
              e.Map(c => c.complemento); 
              e.Map(c => c.cidade); 
              e.Map(c => c.cep); 
              e.Map(c => c.uf).CustomType<GenericEnumMapper<EstadosBrasil>>(); 
              }); 

     } 
    } 
相關問題