elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [C#] NHibernate Mapping one-to-one
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C#] NHibernate Mapping one-to-one  (Leído 696 veces)
n-utz

Desconectado Desconectado

Mensajes: 165

Babylon es el vampiro!


Ver Perfil
[C#] NHibernate Mapping one-to-one
« en: 8 Abril 2018, 03:40 »

Buenas,

Hace mucho no posteo en el foro, pero siempre va a ser mi última opción cuándo no encuentre la información en ningún otro lado o no pueda entender conceptos..

Vengo ahora con un problema de mapeos, estoy desarrollando un sistemita, para uso personal, donde voy a registrar las deudas o deudores que tengo.

Les paso código, que explica más que mil palabras:


Código:
    public class Person
    {
        protected virtual long Id { get; set; }
        protected virtual string Name { get; set;  }
        protected virtual string Nickname { get; set; }
        protected virtual string Surname { get; set; }

        public Person() { }

        public Person(string name, string nickname, string surname)
        {
            Name = name;
            Nickname = nickname;
            Surname = surname;
        }
    }

Código:

    public abstract class Transaction
    {
        protected virtual long Id { get; set; }
        protected virtual float OriginalAmount { get; set; }
        protected virtual float RemainingAmount { get; set; }
        protected virtual string Detail { get; set; }
        protected virtual DateTime Stamp { get; set; }
        protected virtual Person Person { get; set; }

        protected Transaction() { }

        protected Transaction(float originalAmount, string detail, Person person)
        {
            OriginalAmount = originalAmount;
            RemainingAmount = originalAmount;
            Detail = detail;
            Stamp = DateTime.Now;
            Person = person;
        }
    }

   public class Asset : Transaction
    {
        public Asset() { }

        public Asset(float originalAmount, string detail, Person person) :
            base(originalAmount, detail, person) { }
    }

Como es un sistema para mi, solo me centro en las transacciones que se producen y no en las personas, aunque quiero tenerlas registradas. Debido a esto, cada transacción tiene que estar registrada a una persona (clase Person).
Al registrar una transacción, si o si, debe estar asociada a una persona.

Vamos a la BD:

Código:
Table - Person

Id - bigint
Name - varchar(50)
Nickname - varchar(50)
Surname - varchar(50)

Código:
Table - Asset

Id - bigint
OriginalAmount - float
RemainingAmount - float
Detail - varchar(50)
Stamp - Date
PersonId - bigint (fk a Person.Id)

Ahora a los mapeos, el error que estoy teniendo es que no inserta el PersonId correspondientemente, lo intenta insertar como null y al tenerlo no nullable me rompe.

Código:
  <class name="Person">
    <id name="Id">
      <generator class="native"/>
    </id>

    <property name="Name"/>
    <property name="Nickname"/>
    <property name="Surname"/>
  </class>

Código:
  <class name="Asset">
    <id name="Id">
      <generator class="native"/>
    </id>

    <property name="OriginalAmount"/>
    <property name="RemainingAmount"/>
    <property name="Detail"/>
    <property name="Stamp"/>

    <one-to-one name="Person"
                constrained="true"
                foreign-key="none"
                property-ref="Id"
                class="Person" />
  </class>


Si les soy sincero, soy nuevo con NHibernate, me he copiado varios mapeos one-to-one y ninguno me funcionó. Siento que mi relación de clases no es consistente con mi relación de BD.
Si me pueden orientar fantástico.

Saludos y gracias!


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[LA MEJOR LIBRERIA CSV FREE] Quick CSV import with visual mapping
PHP
Graphixx 1 2,507 Último mensaje 23 Octubre 2012, 02:13
por Graphixx
software upnp nat port mapping
GNU/Linux
xkiz ™ 1 1,533 Último mensaje 23 Marzo 2012, 19:40
por xkiz ™
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines