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

问题描述:

我有以下示例代码,它从数据库中的表中获取值列表并将它们绑定到复选框列表。可能通过实体的字符串名称加载实体?

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公开的是相同的,并且您很高兴通过它们的实体类型而不是字符串来访问您的列表,这将对您有用。