2011-06-27 32 views
1

有沒有什麼方法可以爲實體框架中的數據庫生成的實體中的表名,列名和ID給出值的通用getter和setter?給定表名,列名和ID的值的通用getter和setter

通用的getter會是這樣的

僞代碼:

public T GetValue<T>(string tableName, string columnName, int id) 
{ 
    using(Entities context = new Entities()) 
    { 
     return (from t in context.tableName 
       where t has columnName && t.id == id 
       select t.columnName).First(); 
    } 
} 

public void SetValue<T>(string tableName, string columnName, T value, int id) 
{ 
... 
} 

回答

3

這是絕對有可能的,但你必須手工進入至少構建表達式,如果不還反映。你的方式也失去了一些類型(和錯字!)的安全性,這是正確的ORM的一大優點之一。

儘管可以通過使用更多表達式和泛型來解決這個問題,但問題仍然存在 - 您爲什麼要這麼做?說實話,這些功能看起來並不像我想象的那樣在實踐中使用。

+0

非常感謝您的回覆。我仍然無法完成功能工作。我有多個表格;其中一個表具有表名和其他表的主鍵的列名的名稱,並且更多的表將被添加到數據庫中。我的目標是給出表名,列名和id作爲字符串的泛型getter和setter。 – user566552

+0

我對ADO.Net很新,所以請原諒我缺乏經驗。我還想知道,如果我的實體數據模型可以通過創建實體來更新自身,因爲新表被添加到模式中。非常感謝你。 – user566552