I have a form that pass a instance of my DbContext
and a Entity of Table to it as below :
public frm_foo(DbContext DatabaseContext, DbSet TableEntity)
{
InitializeComponent();
var res =GetRowCount(DatabaseContext,TableEntity);
}
And call form contractor by:
new frm_foo(dbContext, dbContext.Set<IpRoom>()).ShowDialog();
The Context contain a IpRoom
table.
I want to get Count of row from in a function that send the DbContext
and Dbset
instance to it as below :
public int GetRowCount(DbContext DatabaseContext, DbSet TableEntity)
{
var countVal = (from a in DatabaseContext.Set(TableEntity.GetType())
select a).Count();
return countVal;
}
But Got error:
Could not find an implementation of the query pattern for source type 'DbSet'. 'Select' not found.
While DatabaseContext.Set(TableEntity.GetType())
return a Dbset! Anybody know whats my wrong? Thanks in advance
Ps: I dont want use SqlQuery
, Something like:
var sql = "SELECT COUNT(*) FROM dbo.IpRoom";
var total = context.Database.SqlQuery<int>(sql).Single();