我正在考虑创建一个通用接口,与对象的数据存储进行交互,可以交换使用EF4或SubSonic或NHibernate或一些NoSQL选项。
我有一个ERD,每个表都有一个自增长的int列"TableNameID"作为主键。我正试图找出如何在通用方法中使用主键从数据库获取单个记录。
public T GetSingle<T>(int primaryKey) where T : class
使用EF4,您需要如何实现这一点?
我正在考虑创建一个通用接口,与对象的数据存储进行交互,可以交换使用EF4或SubSonic或NHibernate或一些NoSQL选项。
我有一个ERD,每个表都有一个自增长的int列"TableNameID"作为主键。我正试图找出如何在通用方法中使用主键从数据库获取单个记录。
public T GetSingle<T>(int primaryKey) where T : class
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();
}
typeof(T).Name
就可以做到,并且不需要System.Reflection
。 - Craig Stuntz