親子関係テーブルが設定されています。 UIでは、親と子の詳細の詳細を表示します。ユーザーの後UIの変更を行い、私は戻って、DBに保存する必要がありますが、私は次のようなエラーになっています:親レコードと子レコードの更新が機能しない
NHibernate.ADOException was caught
Message="could not update: [PlanningMaps.vo.PaRegAddresses#2][SQL: UPDATE PaRegAddresses SET RegUserId = ?, AddressCity = ?, AddressCountry = ?, AddressLine = ?, AddressLine1 = ?, AddressPostcode = ?, RegUserId = ?, IsBillingAddress = ?, IsShippingAddress = ? WHERE RegAddressID = ?]"
とのInnerExceptionである:ここで
System.Data.SqlClient.SqlException: Column name 'RegUserId' appears more than once in the result column list.
は、マッピングの詳細です: をPARENT:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="PlanningMaps.vo" assembly="PlanningMaps.vo">
<class name="PaRegUser, __code" table="PaRegUsers" lazy="false">
<id name="Id" type="Int64" column="RegUserId">
<generator class="identity" />
</id>
<property name="RegTradeName" column="RegTradeName" type="String" />
<property name="RegTitle" column="RegTitle" type="String" />
<property name="RegContactName" column="RegContactName" type="String" />
<property name="RegPassword" column="RegPassword" type="String" />
<property name="RegEmail" column="RegEmail" type="String" />
<property name="RegPhoneNumber" column="RegPhoneNumber" type="String" />
<bag name="PaRegAddresses" inverse="true" cascade="all-delete-orphan" lazy="false">
<key column="RegUserID" />
<one-to-many class="PaRegAddresses, App_Code" />
</bag>
</class>
</hibernate-mapping>
CHILD:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="PlanningMaps.vo" assembly="PlanningMaps.vo">
<class name="PaRegAddresses, __code" table="PaRegAddresses" lazy="false">
<id name="Id" type="Int64" column="RegAddressID">
<generator class="identity" />
</id>
<property name="RegUserId" column="RegUserId" type="Int64" />
<property name="AddressCity" column="AddressCity" type="String" />
<property name="AddressCountry" column="AddressCountry" type="String" />
<property name="AddressLine" column="AddressLine" type="String" />
<property name="AddressLine1" column="AddressLine1" type="String" />
<property name="AddressPostcode" column="AddressPostcode" type="String" />
<many-to-one name="RegUsers" column="RegUserId" not-null="true" class="PaRegUser, App_Code" />
<property name="IsBillingAddress" column="IsBillingAddress" type="Boolean" />
<property name="IsShippingAddress" column="IsShippingAddress" type="Boolean" />
</class>
</hibernate-mapping>
とコード:
public void UpdateRegCustomer(PaRegUser regUser)
{
ITransaction tx = null;
try
{
if (!session.IsConnected)
{
session.Reconnect();
}
tx = session.BeginTransaction();
if (regUser != null)
session.Update(regUser);
tx.Commit();
}
session.Disconnect();
}
catch (Exception ex)
{
tx.Rollback();
session.Disconnect();
log.Error("UpdateRegCustomer(PaRegUser regUser) method", ex);
throw ex;
// handle exception
}
}
私はそれは私がここで間違ってやっているものと私は親と子のレコードを更新できるように何をする必要があるか変更お知らせください。
ありがとうございます。あなたが持っている子で
なぜ、このコミュニティのwikiがある:あなたがプロパティを削除して行うことができても
一般的にいえば? – Brandon