我有以下示例代码,它从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)));
}
谢谢。
答案 0 :(得分:0)
在Code First中,DbContext公开一个.Set()或.Set(Type)方法来获取表的句柄。因此,假设直接EF暴露相同,并且您很乐意按其实体类型而不是字符串访问您的列表,这对您有用。