例外:
Error dehydrating property value for webportale_ger_webservice.Model.SPTPL.SUMANZAUFTRAEGE NHibernate.PropertyValueException
但是webportale_ger_webservice.Model.SPTPL.SUMANZAUFTRAEGE只是抛出此异常的值之一。
堆栈跟踪:
bei NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate(Object id, Object[] fields, Object rowId, Boolean[] includeProperty, Boolean[][] includeColumns, Int32 table, IDbCommand statement, ISessionImplementor session, Int32 index)
bei NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Boolean[] notNull, Int32 j, SqlCommandInfo sql, Object obj, ISessionImplementor session)
bei NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Object obj, ISessionImplementor session)
bei NHibernate.Action.EntityInsertAction.Execute()
bei NHibernate.Engine.ActionQueue.Execute(IExecutable executable)
bei NHibernate.Engine.ActionQueue.ExecuteActions(IList list)
bei NHibernate.Engine.ActionQueue.ExecuteActions()
bei NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions(IEventSource session)
bei NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent event)
bei NHibernate.Impl.SessionImpl.Flush()
bei NHibernate.Transaction.AdoTransaction.Commit()
bei webportale_ger_webservice.web_api.SP_WRITE_Sperrmuellanmeldung(String vornameStr, String nachnameStr, String strasseStr, String hnrzusatzStr, Int32 hausnrStr, String plzStr, String ortStr, String mailStr, String dateStr, String telStr, String argef, String gef_menge, String bemerkungStr, String arstrasse, String arplz, String annahme_art, String benachrichtigung) in C:\Quellen\VSWebNeoBackEnd\VSWebNeoBackEnd\VSWebNeoBackEnd\project india webservice\webportale_ger_webservice.asmx.cs:Zeile 615.
的InnerException:
The index was out of range. It can not be negative and smaller than the listing.
Parameter name: index
InnerException的StackTrace:
bei System.Collections.ArrayList.get_Item(Int32 index)
bei Oracle.ManagedDataAccess.Client.OracleParameterCollection.GetParameter(Int32 index)
bei NHibernate.Type.Int32Type.Set(IDbCommand rs, Object value, Int32 index)
bei NHibernate.Type.NullableType.NullSafeSet(IDbCommand st, Object value, Int32 index, Boolean[] settable, ISessionImplementor session)
bei NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate(Object id, Object[] fields, Object rowId, Boolean[] includeProperty, Boolean[][] includeColumns, Int32 table, IDbCommand statement, ISessionImplementor session, Int32 index)
我的班级和地图:
sptpl.cs(剪辑):
public class SPTPL
{
...
public virtual STRASSE STRASSE { get; set; }
...
public virtual int JAHR { get; set; }
public virtual int DISPOJAHR { get; set; }
public virtual int SUMANZAUFTRAEGE { get; set; }
public virtual double KARSTRASSE { get; set; }
}
sptpl.hbm.xml(剪辑):
<class name="SPTPL" table="SPTPL" lazy="false" >
<many-to-one name="STRASSE">
<column name="L_ARSTRASSE" not-null="false" />
</many-to-one>
...
<property name="SUMANZAUFTRAEGE">
<column name="SUMANZAUFTRAEGE" not-null="false" />
</property>
<property name="JAHR">
<column name="JAHR" not-null="false" />
</property>
<property name="DISPOJAHR">
<column name="DISPOJAHR" not-null="false" />
</property>
<property name="KARSTRASSE">
<column name="KARSTRASSE" not-null="false" />
</property>
这就是我使用它的地方:
KUNDE kunde = session.Load<KUNDEN>(kundenAr);
STRASSE kunde_strasse = session.Load<STRASSE>(kunde.STRASSE.AR);
var sperrmuell = new SPTPL { DATUM = datum, OBJEKTE = objekte, KUNDEN =
kunde, ANSPR_EMAIL = kunde.EMAIL1, KARSTRASSE = kunde_strasse.AR,...
ANSPR_NAME2 = nachnameStr, ANSPR_NAME1 = vornameStr,
SUMANZAUFTRAEGE = 1, JAHR = jahr, DISPOJAHR = 0 };
using (ITransaction transaction = session.BeginTransaction())
{
session.Save(sperrmuell);
transaction.Commit();
}
这些只是剪报,所以如果您需要更多代码,请告诉我。 我真的不知道问题是什么。有人有线索吗?
答案 0 :(得分:0)
通过搜索&#34;指数超出范围来找到答案&#34;错误: https://stackoverflow.com/a/24278610/7177439
我在映射文件中有一个加倍的列:一个多对一引用和一个具有相同&#34;名称&#34;属性。