实体框架到列表方法

本文关键字:方法 列表 框架 实体 | 更新日期: 2023-09-27 18:30:22

im 使用实体框架和谁有问题。

当我获取数据时,我不使用返回类型 A 模型 class.so 谁创建了一个类和实体框架返回我的类的类型,如下所示:

List<MixedArticle> lstMxa=new List<MixedArticle>();
 Model.BlogDBEntities bdbe = new Model.BlogDBEntities();
                SqlParameter sp = new SqlParameter("@count", count);
                object[] parameters = new object[1] { sp };
                lstMxa = bdbe.Database.SqlQuery<Facade.MixedArticle>("select * from fn_GetLastXArticles(@count)", parameters).ToList();

但我可以使用 toList 方法,就像

lstMxa=bdbe.Articles...where(x=x.Count==count).ToList<Facade.MixedArticle>();

当我尝试这种方式时,Visual Studio拒绝并说这不是TSource。

那么,我如何使用ToList()方法呢?

实体框架到列表方法

可以使用投影从数据库中的Articles表中选择MixedArticle中的属性:

lstMxa = bdbe.Articles
    .Where(x => x.Count == count)
    .Select(x => new Facade.MixedArticle
    {
        SomePropertyInMixedArticle1 = x.SomeProperty1,
        SomePropertyInMixedArticle2 = x.SomeProperty2,
        // etc.
    })
    .ToList();

您还可以从数据库加载完整的Article实体,然后将所需的属性映射到MixedArticle(例如,使用 AutoMapper 等工具)。但是,使用 Select 的投影的好处是,它不会从数据库中加载比MixedArticle实际需要的列值多 - 但代价是您必须在 Select 表达式中手动列出和分配所有这些属性。