// <summary>
/// 根据不同的字段和值查找是否存在该信息
/// </summary>
/// <param name="field">数据表的字段</param>
/// <param name="value">字段的值</param>
/// <returns></returns>
public bool ApplyIsExit(string field, string value)
{
try
{
using (ChannelDBEntities entities = new ChannelDBEntities())
{
//创建一个来源于那个EF表的参数,并命表格的名字
var parameter = Expression.Parameter(typeof(ChannelApplyInfo), "ChannelApplyInfo");
//通过上述的参访问变量值对应的字段
MemberExpression memberDynamic = Expression.PropertyOrField(parameter, field);
//把值转为常量表达式
ConstantExpression constantDynamic = Expression.Constant(value);
//生成一段二元表达式
var query = Expression.Equal(memberDynamic, constantDynamic);
//通过上述的参访问变量值对应的字段
MemberExpression memberIsDel = Expression.PropertyOrField(parameter, "IsDel");
//通过上述的参访问变量值对应的字段
ConstantExpression constantIsDel = Expression.Constant(false);
//在二元表达式上并列加载一段二元表达式
query = Expression.And(query, Expression.Equal(memberIsDel, constantIsDel));
//生成lambda表达式
var lambda = Expression.Lambda<Func<ChannelApplyInfo, Boolean>>(query, parameter);
//查找
var newChannel = entities.ChannelApplyInfo.FirstOrDefault(lambda.Compile());
return newChannel != null;
}
}
catch (Exception ex)
{
Log4netHelper.Error(ex.Message, ex);
return false;
}
}