У меня есть EF Core, подключенный к MySql, и у меня есть представление, называемое:
PostViews
Я прочитал эту статью, в которой говорится, что я могу использовать типы запросов для базы данных Взгляды.
Это работает, если я просто вызываю _context.PostViews, но если я использую Include, например:
_context.PostViews.Include(xxxx), выдает мне эту ошибку:
System.InvalidOperationException: «Свойство «Комментарий» не является навигационным свойством типа сущности «PostWithViews». Метод «Включить (строка)» можно использовать только с «.». разделенный список имен свойств навигации.'
PostView имеет все свойства сообщения (id, title, content, Comment и т. д.), а также имеет один дополнительный столбец с именем Views, который показывает, сколько людей прочитало это сообщение.
Вот мой пост:
public partial class Post
{
public Post()
{
Comment = new HashSet<Comment>();
}
public string Id { get; set; }
public string ApartmentId { get; set; }
public string AuthorId { get; set; }
public string CategoryId { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public DateTime? DueDate { get; set; }
public bool? Disabled { get; set; }
public DateTime? CreatedAt { get; set; }
public DateTime? UpdatedAt { get; set; }
public string UpdatedBy { get; set; }
public virtual Apartment Apartment { get; set; }
public virtual User Author { get; set; }
public virtual PostCategory Category { get; set; }}
public virtual ICollection<Comment> Comment { get; set; }
}
Класс PostWithViews почти такой же, как у Post, но с еще одним свойством Views:
public int Views { get; set; }
Вот как я включаю свойства, например. Комментарий:
return GetAll()
.Include(p => p.Author)
.Include(p => p.Comment)
var people = dbContext.People.Select(p => new { PersonName = p.Name, Cats = dbContext.AnimalsView.Where(a => a.Species == "cat" && a.OwnerID == p.ID }).ToArray() })
. Но я всегда получаю только одну кошку на человека! 07.03.2020