实体框架和通用实体

时间:2017-09-27 19:06:55

标签: c# entity-framework generics

我有一个方法:

 private static string doGeneric<T>(T DB, string xmlfilename, string headername, string prefix, string xpath)

我称之为:

 var res = doGeneric(new cou(), (string)p, "coudata", "cou", "//Cou/Item");
 var res = doGeneric(new ttu(), (string)p, "ttuData", "ttu", "//Ttu/Item");
.
.
.
var res = doGeneric(new xxu(), (string)p, "xxuData", "xxu", "//xxu/Item");

cou()ttu()xxu是EF框架生成的EF实体(数据库优先)。

doGeneric方法中,我有:

using (myEFEntity con = new myEFEntity())

我想做这样的事情:

 var cnt = con.DB.Count();

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以使用DbContext.Set<TEntity> Method获取给定类型的DbSet

  

返回一个DbSet<TEntity>实例,用于访问上下文和底层商店中给定类型的实体。

在您的情况下,您应该能够使用DbSet<T>内的以下内容动态获取doGeneric<T>的计数:

using (myEFEntity con = new myEFEntity())
{
    var cnt = con.Set<T>().Count();
}