1

我正在使用 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 和 string 时,我显然不能将它作为 List 返回。有人有想法么?提前谢谢。

4

1 回答 1

1

您正在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();
于 2013-02-19T18:32:27.347 回答