我正在使用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返回。有人有主意吗?谢谢。
答案 0 :(得分: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();