可以通过实体的字符串名称加载实体吗?

时间:2011-04-10 23:10:44

标签: entity-framework-4

我有以下示例代码,它从DB中的表中获取值列表,并将它们绑定到复选框列表。

var db = new DBContext();    
db.Entity1.ToList().ForEach(
x => CheckBoxList1.Items.Add(new ListItem(x.Value, x.ID));

我有大约10个像这样的复选框列表,我不想重复代码。我正在尝试从中提取一个方法并将其用于所有复选框。是否可以通过字符串名称加载实体?像 -

这样的东西

db。加载(“Entity1”)。ToList()。ForEach ...

所以我可以传入实体名称和复选框列表,并在方法中执行foreach循环并绑定项目,如下所示 -

void BindValues(string entityName, CheckBoxList checkBoxList)
{
    db.Load("Entity1").ToList().ForEach(
    x => checkBoxList.Items.Add(new ListItem(x.Value, x.ID)));
}

谢谢。

1 个答案:

答案 0 :(得分:0)

在Code First中,DbContext公开一个.Set()或.Set(Type)方法来获取表的句柄。因此,假设直接EF暴露相同,并且您很乐意按其实体类型而不是字符串访问您的列表,这对您有用。