实体框架4按ID加载记录

时间:2010-06-01 18:48:40

标签: c# .net entity-framework entity-framework-4

所以我正在寻找创建一个通用接口来与我的DataStorage交互我的对象,我可以换掉它来使用EF4或SubSonic或NHibernate或一些NoSQL选项。

所以我有一个ERD,每个表都有一个自动递增的int列“TableNameID”,它是我试图弄清楚如何使用Generic方法中的主键从DB获取单个记录的主键

public T GetSingle<T>(int primaryKey) where T : class

你如何使用EF4做到这一点?

1 个答案:

答案 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();
}