MySql Ошибка Entity Framework с OrderBy и Take - PullRequest
0 голосов
/ 09 февраля 2020

Я немного прочитал, и этот запрос должен работать. Я просто хочу упорядочить по убыванию, взять 15 лучших записей и выделить их в объекты. Удаление OrderByDescending работает, но без заказа, конечно. Удаление Take работает, но без ограничений. Есть ли какая-то причина, по которой мне не хватает, что этот запрос не работает?

var query = context.blogs.OrderByDescending(c => c.CreatedDate).Take(15).Select(x => new Blog
    {
      id = x.id,
      Title = x.Title,
      Content = x.Content,
      Summary = x.Summary,
      CreatedDate = x.CreatedDate,
      CreatedDateText = x.CreatedDate.ToString(),
      Image = x.Image,
      Author = x.Author,
      BlogCategories = x.blogcategories.OrderBy(y => y.category.Name).Select(y => new BlogCategory
      {
        id = y.id,
        Category = new Category
        {
          id = y.category.id,
          Name = y.category.Name
        }
      }).ToList()
    }).ToList()`

Ошибка, которая появляется во время этого запроса: MySqlException: Unknown column 'Project1.C1' in 'field list'

Запрос, который получает вывод: 1007 *

SELECT
`Project2`.`id`, 
`Project2`.`Title`, 
`Project2`.`Content`, 
`Project2`.`Summary`, 
`Project2`.`CreatedDate`, 
`Project2`.`C1`, 
`Project2`.`Image`, 
`Project2`.`Author`, 
`Project2`.`C2`, 
`Project2`.`id1`, 
`Project2`.`CategoryId`, 
`Project2`.`Name`
FROM (SELECT
`Limit1`.`id`, 
`Limit1`.`Title`, 
`Limit1`.`Content`, 
`Limit1`.`CreatedDate`, 
`Limit1`.`Image`, 
`Limit1`.`Author`, 
`Limit1`.`Summary`, 
`Limit1`.`C1`, 
`Join1`.`id` AS `id1`, 
`Join1`.`CategoryId`, 
`Join1`.`Name`, 
CASE WHEN (`Join1`.`id` IS NOT NULL) THEN (1)  ELSE (NULL) END AS `C2`
FROM (SELECT
`Project1`.`id`, 
`Project1`.`Title`, 
`Project1`.`Content`, 
`Project1`.`CreatedDate`, 
`Project1`.`Image`, 
`Project1`.`Author`, 
`Project1`.`Summary`, 
`Project1`.`C1`
FROM `blog` AS `Project1`
 ORDER BY 
`Project1`.`CreatedDate` ASC LIMIT 15) AS `Limit1` LEFT OUTER JOIN (SELECT
`Extent2`.`id`, 
`Extent2`.`CategoryId`, 
`Extent2`.`BlogId`, 
`Extent3`.`id` AS `ID1`, 
`Extent3`.`Name`
FROM `blogcategories` AS `Extent2` INNER JOIN `categories` AS `Extent3` ON `Extent2`.`CategoryId` = `Extent3`.`id`) AS `Join1` ON `Limit1`.`id` = `Join1`.`BlogId`) AS `Project2`
 ORDER BY 
`Project2`.`CreatedDate` ASC, 
`Project2`.`id` ASC, 
`Project2`.`C2` ASC, 
`Project2`.`Name` ASC

Кто-нибудь знает, что не так с этим запросом?

Модель блога:

public class Blog
{
public int id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public string Summary { get; set; }
public System.DateTime CreatedDate { get; set; }
public string CreatedDateText { get; set; }
public string Image { get; set; }
public string Author { get; set; }
public virtual ICollection<BlogCategory> BlogCategories { get; set; }
}

Модель блога Категория:

public class BlogCategory
{
public int id { get; set; }
public Category Category { get; set; }
}

Модель категории:

public class Category
{
public int id { get; set; }
public string Name { get; set; }
}

сущность блога:

public partial class blog
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public blog()
        {
            this.blogcategories = new HashSet<blogcategory>();
        }

        public int id { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }
        public System.DateTime CreatedDate { get; set; }
        public string Image { get; set; }
        public string Author { get; set; }
        public string Summary { get; set; }

        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<blogcategory> blogcategories { get; set; }
    }

сущность блога:

public partial class blogcategory
    {
        public int id { get; set; }
        public int CategoryId { get; set; }
        public int BlogId { get; set; }

        public virtual blog blog { get; set; }
        public virtual category category { get; set; }
    }

сущность категории:

public partial class category
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public category()
        {
            this.blogcategories = new HashSet<blogcategory>();
        }

        public int id { get; set; }
        public string Name { get; set; }

        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<blogcategory> blogcategories { get; set; }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...