无法在nHibernate上添加多对一映射的新记录

时间:2011-05-17 08:08:49

标签: nhibernate many-to-one

String or binary data would be truncated.
The statement has been terminated.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: String or binary data would be truncated.
The statement has been terminated.

Source Error: 
Line 33:             ITransaction tx = session.BeginTransaction();
Line 34:             session.SaveOrUpdate(productX);
Line 35:             tx.Commit();
Line 36:         }
Line 37: 

Source File: ProductService.cs    Line: 35 

Stack Trace: 
[SqlException (0x80131904): String or binary data would be truncated.
The statement has been terminated.]

<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Aquamate.DataObjects.Core" assembly="Aquamate.DataObjects.Core">
    <class name="Product" table="revProduct">
        <id name="Pid" >
            <generator class="guid.comb" />
        </id>
        <many-to-one name="ProductCategory" class="Category" lazy="proxy">
            <column name="Catid" not-null="true" />
        </many-to-one>
        <property name="NameEng" not-null="true" />
        <property name="NameTch" not-null="true" />
        <property name="Status" not-null="true" />
        <property name="Sort" not-null="true" />
    </class>
</hibernate-mapping>

1 个答案:

答案 0 :(得分:0)

此错误通常意味着您尝试将值插入数据库列,其中数据的大小大于为列定义的值。

检查数据库中为所有映射属性定义的大小,并将其与您尝试插入的数据进行比较。

NHIbernate Profiler可以成为您最好的朋友