Я использую мягкое удаление в своей базе данных (поле IsDeleted
). Я активно использую методы LoadWith
и AssociateWith
для извлечения и фильтрации вложенных записей.
Дело в том, что AssociateWith
работает только со свойствами, которые представляют отношение один-ко-многим.
DataLoadOptions loadOptions = new DataLoadOptions();
loadOption.LoadWith<User>(u = > u.Roles);
loadOption.AssociateWith<User>(u = > u.Roles.Where(r = > !r.IsDeleted));
В приведенном выше примере я просто говорю: Я хочу получить пользователей со связанными (не удаленными) ролями .
Но когда у меня отношения один на один, например, Document
-> File
(только один файл связан с документом) Я не могу отфильтровать мягкий удаленный объект:
DataLoadOptions loadOptions = new DataLoadOptions();
loadOption.LoadWith<Document>(d = > d.File);
// the next certainly won't work
loadOption.AssociateWith<File>(f = > !f.IsDeleted);
Итак, есть ли идея, как фильтровать записи в отношениях один-к-одному?
Спасибо!