У кого-нибудь есть идеи, почему NHibernate сделал бы это?Мне кажется это нелепым, и оно (очевидно) разбивает мое приложение, когда оно пытается обновить столбец первичного ключа.Вот что он делает.
Сначала вставляется запись:
INSERT INTO WidgetConfigurationPositions
(WidgetId,
TargetId)
VALUES (256 /* @p0 */,
'row1-column2' /* @p1 */)
select SCOPE_IDENTITY()
Следующее заявление, которое он выдает, - ОБНОВЛЕНИЕ этой записи!Господи, зачем это делать?Вот соответствующая конфигурация для этой сущности:
<class name="Backplane.WidgetConfiguration, Backplane" table="WidgetConfigurations">
<id name="Id" column="Id">
<generator class="native" />
</id>
<property name="Name" column="ConfigurationName" />
<map name="Widgets" table="WidgetConfigurationPositions" cascade="all" lazy="false" fetch="select">
<key column="WidgetConfigurationId" />
<index column="TargetId" type="string" />
<one-to-many class="Backplane.WidgetPlacement"/>
</map>
</class>
<class name="Backplane.WidgetPlacement, Backplane" table="WidgetConfigurationPositions">
<id name="Id" column="Id">
<generator class="native" />
</id>
<many-to-one name="Widget" class="Backplane.Widget, Backplane" column="WidgetId" lazy="false" />
<property name="Target" column="TargetId" />
<map name="Options" table="PlacedWidgetOptions" cascade="all" lazy="false" fetch="select">
<key column="WidgetConfigurationPositionId"/>
<index column="OptionName" type="string" />
<element column="OptionValue" type="string" />
</map>
</class>
Я что-то упустил в своей конфигурации?