Hello,
i have two classes with a one to many relation.
Code:
using System;
using System.Collections.Generic;
namespace Project.Persistenz
{
[NHibernate.Mapping.Attributes.Class(0)]
public class customers
{
private int _id;
private string _accountNumber;
private string _companyName;
private string _street;
private string _zipCode;
private string _city;
private string _country;
private IList<contact> _contacts = new List<contact>();
[NHibernate.Mapping.Attributes.Id(0, Column = "id", TypeType = typeof(int), UnsavedValue = "0")]
[NHibernate.Mapping.Attributes.Generator(1, Class = "native")]
public virtual int id
{
get { return _id; }
set { _id = value; }
}
[NHibernate.Mapping.Attributes.Property(NotNull = true, Length = 50)]
public virtual string accountNumber
{
get { return _accountNumber; }
set { _accountNumber = value; }
}
[NHibernate.Mapping.Attributes.Property(NotNull = true, Length = 50)]
public virtual string companyName
{
get { return _companyName; }
set { _companyName = value; }
}
[NHibernate.Mapping.Attributes.Property(Length = 50)]
public virtual string street
{
get { return _street; }
set { _street = value; }
}
[NHibernate.Mapping.Attributes.Property(Length = 10)]
public virtual string zipCode
{
get { return _zipCode; }
set { _zipCode = value; }
}
[NHibernate.Mapping.Attributes.Property(Length = 50)]
public virtual string city
{
get { return _city; }
set { _city = value; }
}
[NHibernate.Mapping.Attributes.Property(Length = 50)]
public virtual string country
{
get { return _country; }
set { _country = value; }
}
[NHibernate.Mapping.Attributes.Bag(0, Cascade = NHibernate.Mapping.Attributes.CascadeStyle.All, Inverse = true)]
[NHibernate.Mapping.Attributes.Key(1, Column = "customers_id")]
[NHibernate.Mapping.Attributes.OneToMany(2, ClassType = typeof(contact))]
public virtual IList<contact> contacts
{
get { return _contacts; }
set { _contacts = value; }
}
}
}
using System;
namespace Project.Persistenz
{
[NHibernate.Mapping.Attributes.Class(0)]
public class contact
{
private int _id;
private int _customers_id;
private string _title;
private string _name;
private string _firstName;
private string _phone;
private string _mobilePhone;
private string _fax;
private string _email1;
private string _email2;
[NHibernate.Mapping.Attributes.Id(0, Column = "id", TypeType = typeof(int), UnsavedValue = "0")]
[NHibernate.Mapping.Attributes.Generator(1, Class = "native")]
public virtual int id
{
get { return _id; }
set { _id = value; }
}
[NHibernate.Mapping.Attributes.ManyToOne(0, ClassType = typeof(customers), Column = "id", ForeignKey = "FK_contact_customers", Name = "customers_id", NotNull = true)]
public virtual int customers_id
{
get { return _customers_id; }
set { _customers_id = value; }
}
[NHibernate.Mapping.Attributes.Property(Length = 10)]
public virtual string title
{
get { return _title; }
set { _title = value; }
}
[NHibernate.Mapping.Attributes.Property(NotNull = true, Length = 50)]
public virtual string name
{
get { return _name; }
set { _name = value; }
}
[NHibernate.Mapping.Attributes.Property(NotNull = true, Length = 50)]
public virtual string firstName
{
get { return _firstName; }
set { _firstName = value; }
}
[NHibernate.Mapping.Attributes.Property(Length = 50)]
public virtual string phone
{
get { return _phone; }
set { _phone = value; }
}
[NHibernate.Mapping.Attributes.Property(Length = 50)]
public virtual string mobilePhone
{
get { return _mobilePhone; }
set { _mobilePhone = value; }
}
[NHibernate.Mapping.Attributes.Property(Length = 50)]
public virtual string fax
{
get { return _fax; }
set { _fax = value; }
}
[NHibernate.Mapping.Attributes.Property(Length = 50)]
public virtual string email1
{
get { return _email1; }
set { _email1 = value; }
}
[NHibernate.Mapping.Attributes.Property(Length = 50)]
public virtual string email2
{
get { return _email2; }
set { _email2 = value; }
}
}
}
When i try to execute the folowing code i become an exception
Code:
ITransaction tr = NHibernateFactory.getSession().BeginTransaction();
tr.Begin();
customers _customer = new customers();
_customer.accountNumber = "sadsdasdasd";
_customer.city = "asdsadsadad";
_customer.companyName = "asdasdsad";
_customer.country = "aasdsadsadsa";
_customer.street = "adsadsadads";
_customer.zipCode = "23213";
contact _contact = new contact();
_contact.name = "sdasdsadd";
_contact.firstName = "asdasdadsad";
_customer.contacts.Add(_contact);
NHibernateFactory.getSession().Save(_customer);
tr.Commit();
Exception:
Quote:
NHibernate.MappingException: Unknown entity class: System.Int32
bei NHibernate.Impl.SessionFactoryImpl.GetEntityPersister(Type theClass)
bei NHibernate.Impl.SessionImpl.GetClassPersister(Type theClass)
bei NHibernate.Impl.SessionImpl.IsUnsaved(Object obj, Boolean earlyInsert, Object self)
bei NHibernate.Impl.SessionImpl.NullifyTransientReferences(Object value, IType type, Boolean earlyInsert, Object self)
bei NHibernate.Impl.SessionImpl.NullifyTransientReferences(Object[] values, IType[] types, Boolean earlyInsert, Object self)
bei NHibernate.Impl.SessionImpl.DoSave(Object theObj, EntityKey key, IEntityPersister persister, Boolean replicate, Boolean useIdentityColumn, CascadingAction cascadeAction, Object anything)
bei NHibernate.Impl.SessionImpl.DoSave(Object obj, Object id, IEntityPersister persister, Boolean useIdentityColumn, CascadingAction cascadeAction, Object anything)
bei NHibernate.Impl.SessionImpl.SaveWithGeneratedIdentifier(Object obj, CascadingAction action, Object anything)
bei NHibernate.Impl.SessionImpl.Save(Object obj)
bei NHibernate.Impl.SessionImpl.SaveOrUpdate(Object obj)
bei NHibernate.Engine.Cascades.CascadingAction.ActionSaveUpdateClass.Cascade(ISessionImplementor session, Object child, Object anything)
bei NHibernate.Engine.Cascades.Cascade(ISessionImplementor session, Object child, IType type, CascadingAction action, CascadeStyle style, CascadePoint cascadeTo, Object anything)
bei NHibernate.Engine.Cascades.CascadeCollection(CascadingAction action, CascadeStyle style, CollectionType collectionType, IType elemType, Object child, CascadePoint cascadeVia, ISessionImplementor session, Object anything)
bei NHibernate.Engine.Cascades.Cascade(ISessionImplementor session, Object child, IType type, CascadingAction action, CascadeStyle style, CascadePoint cascadeTo, Object anything)
bei NHibernate.Engine.Cascades.Cascade(ISessionImplementor session, IEntityPersister persister, Object parent, CascadingAction action, CascadePoint cascadeTo, Object anything)
bei NHibernate.Impl.SessionImpl.DoSave(Object theObj, EntityKey key, IEntityPersister persister, Boolean replicate, Boolean useIdentityColumn, CascadingAction cascadeAction, Object anything)
bei NHibernate.Impl.SessionImpl.DoSave(Object obj, Object id, IEntityPersister persister, Boolean useIdentityColumn, CascadingAction cascadeAction, Object anything)
bei NHibernate.Impl.SessionImpl.SaveWithGeneratedIdentifier(Object obj, CascadingAction action, Object anything)
bei NHibernate.Impl.SessionImpl.Save(Object obj)
Have any one a hint for me to solve this problem?
Greetings MisterXYZ