Привет. Я пытался выяснить, как настроить сопоставление с NH и FluentNH в течение нескольких дней, и я думаю, что я почти на месте, но не совсем. У меня следующая проблема.
Что мне нужно сделать, так это в основном отобразить эти две сущности, которые являются упрощенными версиями реальных.
Airlines
varchar2(3) airlineCode //PK
varchar2(50)
Aircraft
varchar2(3) aircraftCode //composite PK
varchar2(3) airlineCode //composite PK, FK referencing PK in Airlines
varchar2(50) aircraftName
Мои занятия выглядят как
class Airline
{
string AirlineCode;
string AirlineName;
IList<Aircraft> Fleet;
}
class Aircraft
{
Airline Airline;
string AircraftCode;
string AircraftName;
}
Используя FluentNH, я отобразил это так
AirlineMap
Table("Airlines");
Id(x => x.AirlineCode);
Map(x => x.AirlineName);
HasMany<Aircraft>(x => x.Fleet)
.KeyColumn("Airline");
AircraftMap
Table("Aircraft");
CompositeId()
.KeyProperty(x => x.AircraftCode)
.KeyReference(x => x.Airline);
Map(x => x.AircraftName);
References(x => x.Airline)
.Column("Airline");
Используя Nunit, я тестирую добавление другого самолета, но после вызова транзакции. Примите после сеанса. Спасение (самолет), я получаю исключение: «System.IndexOutOfRangeException: недопустимый индекс 22 для этой OracleParameterCollection с Count = 22 «. Класс Aircraft (и таблица) имеет 22 свойства.
У кого-нибудь есть идеи?