给定表名,列名和id的值的通用getter和setter

时间:2011-06-27 21:57:52

标签: c# wpf entity-framework ado.net

有没有办法在实体框架中从数据库生成的实体中为表名,列名和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)
{
...
}

1 个答案:

答案 0 :(得分:3)

这绝对是可能的,但是如果不是反思的话,你必须至少手工构建表达式。你的方式也失去了一些类型(和拼写错误!)的安全性,这是正确的ORM的一大优势。

虽然可以通过使用更多表达式和泛型来解决这个问题,但问题仍然存在 - 你为什么要这样做?说实话,这些功能看起来不像我想象的那样在实践中使用。