В моей CMS / CRM-системе класс Article
имеет три свойства AdminUser
, одно для «создано», одно для «отредактировано» и одно для «опубликовано»:
public class Article
{
public int Id { get; set; }
// some more properties ...
public AdminUser CreatedBy { get; set; }
public AdminUser EditedBy { get; set; }
public AdminUser PublishedBy { get; set; }
}
Класс AdminUser
:
public class AdminUser
{
public int Id { get; set; }
public int MemberId { get; set; }
// some more properties ...
public Member Member { get; set; }
}
(Member
-класс просто содержит личную информацию, такую как имя и т. Д. В моей системе не все участники являются администраторами, но все администраторы являются членами.)
Это прекрасно работает, когда у меня нет ссылок на Article
в AdminUser
-классе. Но если я хочу узнать что-либо о статьях, которые администратор создал, отредактировал или опубликовал, они должны быть частью AdminUser
-класса:
public class AdminUser
{
public int Id { get; set; }
// ... and the rest of the properties
public List<Article> CreatedArticles { get; set; }
public List<Article> EditedArticles { get; set; }
public List<Article> PublishedArticles { get; set; }
}
Теперь при попытке add-migration
мне выдается следующее сообщение об ошибке:
Невозможно определить взаимосвязь, представленную навигационным свойством 'AdminUser.Articles' типа 'Список'. Либо настройте отношение вручную, либо игнорируйте это свойство с помощью атрибута [NotMapped] или с помощью EntityTypeBuilder.Ignore в OnModelCreating.
Я вроде понимаю, что происходит, но я не знаю, как "вручную настроить отношения".