所以我正在寻找创建一个通用接口来与我的DataStorage交互我的对象,我可以换掉它来使用EF4或SubSonic或NHibernate或一些NoSQL选项。
所以我有一个ERD,每个表都有一个自动递增的int列“TableNameID”,它是我试图弄清楚如何使用Generic方法中的主键从DB获取单个记录的主键
public T GetSingle<T>(int primaryKey) where T : class
你如何使用EF4做到这一点?
答案 0 :(得分:2)
您可以通过通用ObjectContext.CreateObjectSet()完成此操作。
,例如:
public T GetSingle<T>(int primaryKey) where T : class
{
var q = Context.CreateObjectSet<T>().Where("it.TableNameID = @tableNameId");
q.Parameters.Add(new ObjectParameter("tableNameId", primaryKey));
return q.Single();
}