2016-09-18 53 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>>(); 
              }); 

     } 
    } 
相关问题