Спасибо за помощь всем.
Я использую Fluent Nhibernate и у меня проблемы с отображением.
Так что в основном у меня есть две таблицы ... Человек и пациент. У Person есть PK с именем Id, а у Patient есть PK с именем PersonID, который также является FK для Person.Id.
Table - Person
PK - Id
Table - Patient
PK - PersonId (FK to Person.Id)
Я старался всеми возможными способами сопоставить эти две таблицы вместе. Прямо сейчас у меня есть следующее:
Person.cs
public class Person
{
public virtual int Id { get; set; }
public virtual Patient Patient {get; set; }
public virtual bool IsActive { get; set; }
}
PersonMap.cs
public class PersonMap
{
public PersonMap()
{
Id(x => x.Id, "Id").GeneratedBy.Assigned();
HasOne(x => x.Patient).Constrained();
Map(x => x.IsActive);
}
}
Patient.cs
public class Patient
{
public virtual int PersonId { get; set; }
}
PatientMap.cs
public class PatientMap
{
public PatientMap()
{
Id(x => x.PersonId).GeneratedBy.Assigned();
}
}
Так что это отображение работает .... но, очевидно, только в одном направлении. Что хорошо для моих целей.
Когда я запускаю следующий запрос, он работает нормально. Он возвращает 10 результатов, как и ожидалось.
var query = _repository.Find<Person>().Take(10).ToList();
Однако, если я добавлю .Where () в mix, это выдаст ошибку.
var query = _repository.Find<Person>().Where(x => x.IsActive == false).Take(10).ToList();
Приведенное выше утверждение дает мне следующую ошибку.
Я не могу понять, чего не хватает. Я попытался сопоставить обе стороны отношений с HasOne, References, CompositeKey и т. Д. Я стараюсь избегать использования HasMany, потому что всегда есть только одна.
Чего мне не хватает?
Спасибо,
-ZD