У меня есть таблица User с соответствующей таблицей UserAudits, которая отслеживает изменения. Тип операции хранится в таблице аудита (вставка, обновление, удаление).
Я хочу создать свойство навигации для моей сущности User, чтобы я мог извлечь "вставленную" запись из таблицы аудита. Это возможно? Обычно при настройке свойства навигации невозможно указать дополнительные условия для объединения.
Пользователь:
public class User
{
public int Id {get; set;}
public string Name {get;set;}
public UserAudit InsertedAuditRecord {get; set;} // <-- How to configure this?
}
UserAudit:
public class UserAudit
{
public int AuditId {get; set;
public int Id {get; set;}
public string Name {get; set;}
public string OperationType {get; set;}
}
Я знаю, что яможет создать свойство навигации «один ко многим» в моей сущности «Пользователь», а затем запросить следующее:
ICollection<UserAudit> UserAudits {get; set;}
UserAudit InsertedAuditRecord => UserAudits.First(ua => ua.OperationType = "insert");
Но для этого потребуется перенести всю таблицу аудита для пользователя в память, чтобы найти только одну запись.
Конечно, есть какой-нибудь способ сделать это?