сначала я действительно новичок в ORM, nhibernate и FHN. Я смотрю на это в течение нескольких дней.
У меня есть база данных с 4 таблицами:
поэтому я сначала попытался заставить работать Auswahl и RefAuswahlFilter.
вот мои доменные объекты: пожалуйста, дайте мне знать, когда я смогу сделать это лучше
[Serializable]
public class Auswahl
{
public Auswahl()
{
this.RefFilters = new List<RefAuswahlFilter>();
}
public virtual IList<RefAuswahlFilter> RefFilters { get; set; }
//...rest of the Properties
[Serializable]
public class RefAuswahlFilter
{
public virtual Auswahl Auswahl { get; set; }
public virtual long Filterrank { get; set; }
public virtual string Filter { get; set; }
вот мои отображения:
public class AuswahlMap : ClassMap<Auswahl>
{
public AuswahlMap()
{
Table("AUSWAHL");
Id(x => x.Id)
.GeneratedBy.Sequence("SEQ_AUSWAHL");
Map(x => x.Programm);
Map(x => x.Variante);
Map(x => x.Returnkey);
Map(x => x.Beschreibung);
HasMany<RefAuswahlFilter>(x => x.RefFilters);
}
}
public class RefAuswahlFilterMap : ClassMap<RefAuswahlFilter>
{
public RefAuswahlFilterMap()
{
Table("REFAUSWAHLFILTER");
CompositeId()
.KeyReference(x => x.Auswahl,"IDAUSWAHL")
.KeyProperty(x => x.Filterrank,"FILTERANK");
Map(x => x.Filter);
}
}
если я запускаю свое приложение, я получаю список со всеми строками Auswahl.
var l = session.CreateCriteria(typeof(Auswahl)).List<Auswahl>();
но когда я смотрю в элемент, чтобы получить RefFilters, отладчик показывает следующую ошибку:
innerException {"ORA-00904: \" REFFILTERS0 \ ". \" AUSWAHL_ID \ ": ungültiger Bezeichner \ n"}
не удалось инициализировать коллекцию: [ORMTest.DomainModel.Auswahl.RefFilters # 1097] [SQL: SELECT reffilters0_.Auswahl_id в Auswahl4_1_, reffilters0_.IDAUSWAHL как IDAUSWAHL1_, reffilters0_.FILTERANK как FILTERANK1_, reffilters0_.IDAUSWAHL как IDAUSWAHL3_0_, reffilters0_. FILTERANK as FILTERANK3_0_, reffilters0_.Filter as Filter3_0_ FROM REFAUSWAHLFILTER reffilters0_ ГДЕ reffilters0_.Auswahl_id =?]
так что я думаю, что что-то в моем отображении неправильно, но я действительно не понимаю.
ТНХ.