2013-02-19 64 views
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; 
} 

在用户界面中,我想将这些数据映射到GridView以输出它。我的代码显然是错误的。当dataContainer要包含一个int和字符串时,我显然不能将它作为List返回。有人有主意吗?谢谢你。

+0

如果您正在使用x.id和x.name为什么不创建X.ID键和x.name值或替代字典它来与了解创建变量的ID和名称 – 2013-02-19 18:28:15

回答

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(); 
+0

完美的一类,谢谢。只是设法让这一切都在今天上午工作。可能是一个简单的问题,但我学到了很多东西。谢谢! – 2013-02-20 15:43:53