Я только начал свой первый проект, используя ядро asp.net, и впервые я собираюсь использовать репозиторий кода для своего проекта в C # и VS 2019.
Я создаю новую модель, и она называется Комментарий. В этой таблице можно сохранить все комментарии к проекту, то есть пользовательские комментарии в сообщениях POSTS, SOCIALMEDIA и т. Д. Области, сохраненные в этой таблице
[Key]
public int CommentId { get; set; }
public eTable Table { get; set; }
public int ContentId { get; set; }
[StringLength(1500)]
public string Notes { get; set; }
public virtual AnalysedMarket AnalysedMarket { get; set; }
ContentID - мой внешний ключ, а мой тип перечисления eTable выглядит следующим образом:
public enum eTable
{
AnalysedMarket,
Blog,
News,
Migration,
}
Я создал новый класс для AnalysedMarket, а также для сохранения данных пользователей из нашей области социальных сетей.
[Key]
public int AnalysedMarketId { get; set; }
[StringLength(255)]
public string Images { get; set; }
public int Hits { get; set; }
public string Notes { get; set; }``
Теперь я создал метод в своем хранилище кода для извлечения данных, используя EF и LINQ для получения списка данных AnalysedMarket, но я не могу включить свой результат в таблицу комментариев, и результат моего хранилища кода в разделе комментариев всегда равен нулю.
public async Task<IEnumerable<AnalysedMarket>> List(int? page, int? perPage, eStatus? status, string userId)
{
var query = _db.AnalysedMarkets.Select(a => a);
if (status.HasValue)
query = query.Where(m => m.Status.Equals(status));
if (!string.IsNullOrEmpty(userId))
query.Where(m => m.CreatedBy.Equals(userId));
query.Include(a => a.Comments.Where(c => c.Table.Equals(eTable.AnalysedMarket) && c.ContentId == a.AnalysedMarketId));
if (page.HasValue && perPage.HasValue)
return await query.OrderBy(a => a.AnalysedMarketId).ToPagedListAsync(page.Value, perPage.Value);
else
return await query.OrderBy(a => a.AnalysedMarketId).ToListAsync();
}
На самом деле мой вопрос заключается в том, как получить список данных AnalysedMarket, включенных в данные комментариев.
И у него есть условие, и в нем указано включение комментария, если ContentId равен AnalysedMarketId, а eTable - Table.AnalysedMarket.
Я читал статьи об условном включении, но ничего из них не получил.
Пример 1
Пример 2