2011-04-10 73 views
1

我有以下示例代碼,它從數據庫中的表中獲取值列表並將它們綁定到複選框列表。可能通過實體的字符串名稱加載實體?

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))); 
} 

謝謝。

回答

0

在代碼中首先,DbContext公開了一個.Set()或.Set(Type)方法來獲取表的句柄。因此,假設直接EF公開的是相同的,並且您很高興通過它們的實體類型而不是字符串來訪問您的列表,這將對您有用。