Замок ActiveRecord не может обнаружить поле DAO в некоторых запросах - PullRequest
0 голосов
/ 13 мая 2010

Этот запрос работает нормально:

DetachedCriteria filter = DetachedCriteria
                          .For(typeof(NotificationRecord), "nr")
                          .Add(Expression.Eq("nr.Submission.Id", 5));

return ActiveRecordMediator<NotificationRecord>.FindAll(filter);

Этот запрос не выполняется с сообщением об исключении: could not resolve property: Submission.IsScheduledForNotification of: NotificationRecord

DetachedCriteria filter = DetachedCriteria
                          .For(typeof(NotificationRecord), "nr")
                          .Add(Expression.Eq("nr.Submission.IsScheduledForNotification", true));

return ActiveRecordMediator<NotificationRecord>.FindAll(filter);

Чтобы ActiveRecord распознал IsScheduledForNotification, я делаю простой запрос к фактическому Submission объекту, используя IsScheduledForNotification в качестве фильтра, и он работает

ActiveRecordMediator<Submission>.Exists(Expression.Eq("IsScheduledForNotification", true));

Может кто-нибудь сказать, почему это должно произойти?

1 Ответ

1 голос
/ 13 мая 2010

Используйте CreateAlias() для обозначения присоединенной сущности, например ::100100

DetachedCriteria
.For(typeof(NotificationRecord), "nr")
.CreateAlias("nr.Submission", "s")
.Add(Expression.Eq("s.IsScheduledForNotification", true));

Вам не нужно это для запроса nr.Submission.Id, потому что там нет соединения.

...