可能通过实体的字符串名称加载实体?
问题描述:
我有以下示例代码,它从数据库中的表中获取值列表并将它们绑定到复选框列表。可能通过实体的字符串名称加载实体?
var db = new DBContext();
db.Entity1.ToList().ForEach(
x => CheckBoxList1.Items.Add(new ListItem(x.Value, x.ID));
我有大约10个这样的checkboxlists,我不想重复的代码。我试图从中提取一种方法,并将其用于所有复选框。是否有可能通过字符串名称加载实体?类似于 -
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)));
}
谢谢。
答
在代码中首先,DbContext公开了一个.Set()或.Set(Type)方法来获取表的句柄。因此,假设直接EF公开的是相同的,并且您很高兴通过它们的实体类型而不是字符串来访问您的列表,这将对您有用。