Довольно плохо знаком с EFCore, и я пытаюсь создать сущность, у которой есть некоторое отслеживание того, когда она была обновлена и создана. Я хотел бы, чтобы была навигация назад к пользователю в случае, если я хотел бы отобразить некоторую информацию о пользователе.
Сущность, которую я определил следующим образом:
public class Department
{
public int Id { get; set; }
public string Name { get; set; }
public bool Active { get; set; }
public int LeaderId { get; set; }
public User Leader { get; set; }
public int DefaultAssigneeId { get; set; }
public User DefaultAssignee { get; set; }
public DateTime CreatedOn { get; set; }
public int CreatedById { get; set; }
public User CreatedBy { get; set; }
public DateTime LastUpdated { get; set; }
public int LastUpdatedById { get; set; }
public User LastUpdatedBy { get; set; }
}
Проблема, с которой я сталкиваюсь, заключается в том, что она создается как отношение один к одному с уникальным индексом в CreatedById и LastUpdatedById et * 1012. *. Очевидно, что пользователь не может быть уникальным в таблице.
Нужно ли это делать в Fluent API? Я думаю, что это может работать, но мне интересно, если это уместно или есть лучший способ сделать это.
builder.Entity<Department>()
.HasOne(d => d.LastUpdatedBy)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
Поскольку у меня может быть больше таких сущностей, есть ли способ добавить аннотации вместо объявить это в свободном API?