У меня проблемы с сопоставлением NHibernate один к одному. Я использую Fluent Nhibernate, и мои сопоставления основаны на этом сообщении в блоге: http://brunoreis.com/tech/fluent-nhibernate-hasone-how-implement-one-to-one-relationship/
Фрагмент таблицы:
dbo.Store
---------
Id : int
dbo.CheckoutSettings
---------
StoreId :int (FK to dbo.Store.Id)
Вот несколько БММ:
<class xmlns="urn:nhibernate-mapping-2.2" schema="Management" mutable="true" name="Store" table="Streo">
<id name="Id" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" unsaved-value="0">
<column name="Id" />
<generator class="native" />
</id>
<one-to-one cascade="all" class="CheckoutSettings" constrained="false" name="CheckoutSettings" />
</class>
<class xmlns="urn:nhibernate-mapping-2.2" schema="Management" mutable="true" name="CheckoutSettings" table="CheckoutSettings">
<id name="StoreId" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="StoreId" />
<generator class="foreign">
<param name="property">Store</param>
</generator>
</id>
<one-to-one class="Store" foreign-key="FK_CheckoutSettings_StoreId" name="Store" />
</class>
Кажется, что все работает локально, но на нашем тестовом сервере я сохраняю ошибки, такие как неожиданное количество строк: 0 (ожидаемое: 1). Также во время загрузки я вижу странные соединения SQL:
select (columns)
from checkoutsettings c0
left outer join store s on keys
left outer join checkoutsettings c1 on keys
where c0.Storeid = id
И это ничего не возвращает, так как в настройках оформления заказа может не быть строки для магазина.
Есть идеи?