使用实体框架在类之间传递查询数据

本文关键字:查询 数据 之间 实体 框架 | 更新日期: 2023-09-27 18:00:05

我正在使用Visual Studio 2012 C#,并试图在类之间传递一些数据。所以基本上,我有两节课。一个类用于查询数据,另一个类仅用于显示数据(本质上是UI)。

我想我需要把它放在某种数据容器中并传递它。然而,我目前是一名学生,不知道什么是最好的方法。

public List<string> GetDatabyID(int ID)
{
    var context = new Site.EFModel.SiteDBEntities();
    var query = context.db.Where(x => x.ID == ID).Select(x => new {x.ID, x.Name});
    List<string> dataContainer = query.ToList();
    return dataContainer;
}

在UI中,我想将这些数据映射到GridView中进行输出。我的代码显然是错误的。当dataContainer将包含int和字符串时,我显然不能将其作为List返回。有人有什么想法吗?谢谢。

使用实体框架在类之间传递查询数据

您正在根据数据库调用的结果创建一个Anonymous Object。Linq方法Select:

Select(x => new {x.ID, x.Name});

将结果投影到您选择的新对象中,在本例中为匿名对象。这应该设置为创建并返回一个EF实体的列表。

var query = context.db.Where(x => x.ID == ID).Select(
    x => new MyEntity {ID = x.ID, Name = x.Name});
List<MyEntity> dataContainer = query.ToList();