EFに取り組み、カスタムを書く必要があります
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;
}
エラー:
'System.Data.Objects.ObjectQuery.Where(string, params System.Data.Objects.ObjectParameter[])' に最適なオーバーロードされたメソッドの一致には、いくつかの無効な引数があります
上記の構文が機能しないのはなぜですか?どうすれば修正できますか?