Допустим, мы имеем следующую модель:FirstOrDefault возвращает нуль на внешний ключ
public class ReadingOrder
{
public virtual int Id { get; set; }
public virtual Order Order { get; set; }
}
Mapping:
Table("db_ReadingOrder");
Id(o => o.Id).Column("Id").GeneratedBy.Identity();
References(o => o.Order, "OrderId");
Я хочу, чтобы получить ReadingOrder
, который имеет orderId
равный с 1 (например). Но когда я пытаюсь FirstOrDefault
, запрос возвращает нуль:
var readingO = _repositoryFactory.GetRepository<ReadingOrder>().FirstOrDefault(xz => xz.Order.Id == 1);
Если я получаю все из них, и после того, как капните FirstOrDefault
работает, но его глупо:
var readingOrderList1 = _repositoryFactory.GetRepository<ReadingOrder>()
.GetAll().FirstOrDefault(xz => xz.Order.Id == 1);
метод из репозитория имеет следующий формат:
public T FirstOrDefault(Expression<Func<T, bool>> predicate)
{
return _session.Query<T>().FirstOrDefault(predicate);
}
простой материал, но не работает. Если я пойду за нормальным свойством, например Id
, все будет работать так, как ожидалось. Кроме того, если я получаю сгенерированный запрос из журнала и помещаю его в sqlite, он выполняется успешно и возвращается порядок чтения. Есть ли ошибка в NHibernate? Является ли проблема отображения? Или это проблема с SQLite?
Тот же результат ... для этих двух сопоставлений. Но, как обновление, он работает для всех остальных объектов, кроме этого. –
, если он работает со всеми другими объектами, попробуйте воспроизвести эту проблему в отдельном проекте ... –
Я попытался в отдельном проекте ... не проблема с инфраструктурой сущностей!это проблема Nhibernate, я думаю –