有没有办法在实体框架中从数据库生成的实体中为表名,列名和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)
{
...
}
答案 0 :(得分:3)
这绝对是可能的,但是如果不是反思的话,你必须至少手工构建表达式。你的方式也失去了一些类型(和拼写错误!)的安全性,这是正确的ORM的一大优势。
虽然可以通过使用更多表达式和泛型来解决这个问题,但问题仍然存在 - 你为什么要这样做?说实话,这些功能看起来不像我想象的那样在实践中使用。