因此,我正在考虑创建一个通用接口来与我的对象的DataStorage进行交互,我可以交换该接口以使用EF4或SubSonic或NHibernate或某些NoSQL选项。

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

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


您如何使用EF4执行此操作?

最佳答案

您可以通过通用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();
}

关于c# - Entity Framework 4负载ID记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2952388/

10-11 08:00