我需要编写一个IsExists(string TableName,string KeyColumnName,string ValueToCheck)在DAL中调用的函数,它检查数据是否存在于特定的表和我传递的特定列中
基本上我想在我尝试使用sql查询时实现类似的功能
select count(id) from "+TableName+" where "+keyColumnName+"="+ValueToCheck+";
Run Code Online (Sandbox Code Playgroud)
但我不能使用SQL查询..
在我的解决方案中,我有一个.edmx文件,一个实体类以及一个存储库类,它具有以下SearchFor方法:
public class EntityRepository<C, TEntity> : IEntityRepository<TEntity>
where TEntity : class
where C : DbContext
{
public IQueryable<TEntity> SearchFor(System.Linq.Expressions.Expression<Func<TEntity, bool>> predicate)
{
return _entities.Set<TEntity>().Where(predicate);
}
}
Run Code Online (Sandbox Code Playgroud)
我试过这样的事情
public bool CheckIsExists<T>(string keyColumnName, string valueToCheck) where T : class
{
bool isExist = false;
using (var repository = ContextFactory.CreateEmployeeMasterRepository())
{
var repo = repository.GetEntityRepository<T>();
object obj = (T)Activator.CreateInstance(type);
repo.SearchFor(u => u.GetType().GetProperty(keyColumnName).GetValue(obj).ToString() == valueToCheck);
}
return isExist; …Run Code Online (Sandbox Code Playgroud)