工作的EF,需要編寫一個自定義的,其中爲什麼表情不是LINQ工作
public virtual IEnumerable GetDataByID<TEntity>() where TEntity : class
{
if (this.Context == null)
Initialize<TEntity>();
TContext context = this.Context;
var result = context.CreateObjectSet<TEntity>().Where(GetExpression<TEntity>(5));
return result;
}
public Expression GetExpression<TEntity>(int id) where TEntity : class
{
ParameterExpression e = Expression.Parameter(typeof(TEntity), "e");
PropertyInfo propInfo = typeof(TEntity).GetProperty(EntityInfo<TEntity>.GetPkFieldName(this.Context));//(KeyPropertyName);
MemberExpression m = Expression.MakeMemberAccess(e, propInfo);
ConstantExpression c = Expression.Constant(id, typeof(int));
BinaryExpression b = Expression.Equal(m, c);
Expression<Func<TEntity, bool>> lambda = Expression.Lambda<Func<TEntity, bool>>(b, e);
return lambda;
}
錯誤:
The best overloaded method match for 'System.Data.Objects.ObjectQuery.Where(string, params System.Data.Objects.ObjectParameter[])' has some invalid arguments
爲什麼我上面的語法不工作,如何解決呢?
有什麼錯誤訊息? –