SQL запрос в C# возвращает список одних и тех же данных
Таблица Comments связана внешними ключами с Videos и Users и имеет свой Id, таким образом пользователь может оставлять несколько комментариев под видео. Но при получении данных в C# возвращается список из одинаковых значений там, где совпадают внешние ключи. По всей видимости результаты сравниваются по внешним связям, а не по первичному ключу, при том, что в MS SQL тот же запрос работает как и должен. В чём проблема, как это фиксить?
Код класса Comment :
public class Comment
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string VideoUrl { get; set; }
public Video Video { get; set; }
public int UserId { get; set; }
public User User { get; set; }
public DateTime Date { get; set; } = DateTime.Now;
public string Message { get; set; }
}
Связь в DbContext:
modelBuilder.Entity<Comment>().HasKey(v => new { v.UserId, v.VideoUrl });
modelBuilder.Entity<Comment>().HasOne(v => v.User).WithMany(u => u.Comments).HasForeignKey(v => v.UserId);
modelBuilder.Entity<Comment>().HasOne(v => v.Video).WithMany(v => v.Comments).HasForeignKey(v => v.VideoUrl);
Схема в MS SQL
Результат выполнения запроса