Я немного прочитал, и этот запрос должен работать. Я просто хочу упорядочить по убыванию, взять 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; }
}