|
Trying a relatively simple query with a join, but adding a Where clause causes a MethodAccessException:
Guid gid = custacct.CustomerAccountID; IEntityQuery<UserProfile> query = from users in RepositoryDomainContext.UserProfiles join p in RepositoryDomainContext.Permissions on users.UserProfileId equals p.UserProfileId where p.ElementID == gid select users;
RepositoryDomainContext.ExecuteQueryAsync(query, cb => callback(cb.Results), null);
this results in the exception below. Removing the where works perfectly, as does restructuring the query:
IEntityQuery<UserProfile> query = from users in RepositoryDomainContext.UserProfiles join p in RepositoryDomainContext.Permissions.Where(pp => pp.ElementID == gid) on users.UserProfileId equals p.UserProfileId select users;
Any suggestions?
Cheers, Jason
Exception: {System.MethodAccessException: Attempt by method 'System.Linq.Expressions.Expression.CreateLambda(System.Type, System.Linq.Expressions.Expression, System.String, Boolean, System.Collections.ObjectModel.ReadOnlyCollection`1<System.Linq.Expressions.ParameterExpression>)' to access method 'System.Linq.Expressions.Expression`1<System.Func`2<<>f__AnonymousType0`2<QuestMetrics.Manager.Model.Data.UserProfile,QuestMetrics.Manager.Model.Data.Permission>,System.Boolean>>.Create(System.Linq.Expressions.Expression, System.String, Boolean, System.Collections.ObjectModel.ReadOnlyCollection`1<System.Linq.Expressions.ParameterExpression>)' failed. at System.RuntimeMethodHandle.PerformSecurityCheck(Object obj, RuntimeMethodHandleInternal method, RuntimeType parent, UInt32 invocationFlags) at System.RuntimeMethodHandle.PerformSecurityCheck(Object obj, IRuntimeMethodInfo method, RuntimeType parent, UInt32 invocationFlags) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Linq.Expressions.Expression.CreateLambda(Type delegateType, Expression body, String name, Boolean tailCall, ReadOnlyCollection`1 parameters) at System.Linq.Expressions.Expression.Lambda(Type delegateType, Expression body, String name, Boolean tailCall, IEnumerable`1 parameters) at System.Linq.Expressions.Expression.Lambda(Type delegateType, Expression body, ParameterExpression[] parameters) at IdeaBlade.Linq.TransformExpressionVisitor.VisitLambda(LambdaExpression le, Expression bodyExpr, IEnumerable`1 parameterExpressions) at IdeaBlade.Linq.ExpressionVisitor.VisitExpressionCore(Expression e) at IdeaBlade.Linq.TransformExpressionVisitor.VisitExpressionCore(Expression expr) at IdeaBlade.Linq.LocalizingExpressionVisitor.VisitExpressionCore(Expression expr) at IdeaBlade.Linq.ExpressionVisitor.VisitExpression(Expression expr) at IdeaBlade.Linq.ExpressionVisitor.VisitExpressionCore(Expression e) at IdeaBlade.Linq.TransformExpressionVisitor.VisitExpressionCore(Expression expr) at IdeaBlade.Linq.LocalizingExpressionVisitor.VisitExpressionCore(Expression expr) at IdeaBlade.Linq.ExpressionVisitor.VisitExpression(Expression expr) at IdeaBlade.Linq.ExpressionVisitor.<VisitExpressions>b__0(Expression e) at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at System.Linq.Buffer`1..ctor(IEnumerable`1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) at IdeaBlade.Linq.ExpressionVisitor.VisitExpressions(IEnumerable`1 expressions) at IdeaBlade.Linq.ExpressionVisitor.VisitExpressionCore(Expression e) at IdeaBlade.Linq.TransformExpressionVisitor.VisitExpressionCore(Expression expr) at IdeaBlade.Linq.LocalizingExpressionVisitor.VisitExpressionCore(Expression expr) at IdeaBlade.Linq.ExpressionVisitor.VisitExpression(Expression expr) at IdeaBlade.Linq.ExpressionVisitor.<VisitExpressions>b__0(Expression e) at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at System.Linq.Buffer`1..ctor(IEnumerable`1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) at IdeaBlade.Linq.ExpressionVisitor.VisitExpressions(IEnumerable`1 expressions) at IdeaBlade.Linq.ExpressionVisitor.VisitExpressionCore(Expression e) at IdeaBlade.Linq.TransformExpressionVisitor.VisitExpressionCore(Expression expr) at IdeaBlade.Linq.LocalizingExpressionVisitor.VisitExpressionCore(Expression expr) at IdeaBlade.Linq.ExpressionVisitor.VisitExpression(Expression expr) at IdeaBlade.Linq.ExpressionVisitor.Visit(Expression expr) at IdeaBlade.Linq.LocalizingExpressionVisitor.Visit(Expression expr) at IdeaBlade.EntityModel.ServerEntityQuery..ctor(EntityQuery query) at IdeaBlade.EntityModel.EntityQuery`1.GetServerQuery() at IdeaBlade.EntityModel.EntityQueryFinder.get_ServerQuery() at IdeaBlade.EntityModel.EntityQueryFinder.Execute() at IdeaBlade.EntityModel.EntityManager.ExecuteQueryCore(IEntityQuery query, Boolean isAsync) at IdeaBlade.EntityModel.EntityManager.<ExecuteQueryAsyncCore>b__4c[T](EntityQueryOperation`1 op) at IdeaBlade.EntityModel.AsyncProcessor`1.Execute() at IdeaBlade.EntityModel.EntityManager.ExecuteQueryAsyncCore[T](AsyncProcessor`1 processor) at IdeaBlade.EntityModel.EntityManager.ExecuteQueryAsync[T](IEntityQuery`1 query, Action`1 userCallback, Object userState) at QuestMetrics.Manager.DataModel.Repositories.PermissionRepository.GetUserProfilesWithPermissions(CustomerAccount custacct, Action`1 callback, Expression`1 filter)}
Edited by jsobell - 06-May-2010 at 4:13pm
|