hi everyone, im totally new to nhibernate.
currently im trying to use it in C# project.
but I ran across problem when I want to delete record.
here's my mapping for ItemUnit table
Code:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Testing"
namespace="Model">
<class name="ItemUnit" table="ItemUnit">
//This is how I setup the composite ID
<composite-id>
<key-many-to-one name="ItemDetail" class="Item" column="Item" lazy="false" />
<key-many-to-one name="UnitDetail" class="Unit" column="Unit" lazy="false" />
</composite-id>
<property name="Coefisien" column="Coefisien" type="String"/>
<property name="AuStatus" column="AuStatus" type="String"/>
<property name="AuUser" column="AuUser" type="int"/>
<property name="AuTime" column="AuTime" type="DateTime"/>
</class>
</hibernate-mapping>
and here's my code:
Code:
//This is code to get pre-coded ID from a combobox
PairData pairItem = (PairData)cmbItem.SelectedItem;
int itemKey = pairItem.key;
// Setup nhibernate configuration
Configuration config = new Configuration();
config.AddAssembly(typeof(ItemUnit).Assembly);
// Setup nhibernate session
ISessionFactory factory = config.BuildSessionFactory();
ISession session = factory.OpenSession();
ITransaction transaction = session.BeginTransaction();
IQuery query = session.CreateQuery("SELECT a FROM ItemUnit a WHERE a.ItemDetail = " + itemKey);
IList<ItemUnit> itemunit = query.List<ItemUnit>();
session.Delete(itemunit);
i got error message "Unknown entity class: System.Collections.Generic.List`1[[Model.ItemUnit, Testing, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
when I tried to change the code like this:
Code:
//This is code to get pre-coded ID from a combobox
PairData pairItem = (PairData)cmbItem.SelectedItem;
int itemKey = pairItem.key;
// Setup nhibernate configuration
Configuration config = new Configuration();
config.AddAssembly(typeof(ItemUnit).Assembly);
// Setup nhibernate session
ISessionFactory factory = config.BuildSessionFactory();
ISession session = factory.OpenSession();
ITransaction transaction = session.BeginTransaction();
Object result = session.CreateSQLQuery("DELETE from ItemUnit");
session.Delete(result);
I got error message "Unknown entity class: NHibernate.Impl.SqlQueryImpl". FYI i have already using NHibernate.Impl.
so, how to do it properly?
thx :)