在 FluentNHibernate 中使用 Embeddable?

Working with Embeddable in FluentNHibernate?

我正在寻找有关在 Hibernate 中使用 FluentNHibernate 的 Embeddable 的任何操作方法或文档。是否有任何方法可以在 FluentNHibernate 中使用 Embeddable,如果没有,最好的模拟方法是什么?

终于找到了解决办法。它非常简单,就像 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>>();
                                            });

        }
    }