我在RIA中构建了一个继承自DomainService和IAuthenticate的身份验证服务。
问题在于:
由于凭据错误导致LoginOperation失败(loginOperation.LoginSuccess为false),一切正常,并报告给用户。
然而,当登录成功时,我会抛出一个非常奇怪的例外:
{System.ServiceModel.DomainServices.Client.DomainOperationException:查询'登录'的加载操作失败。值不能为空。
参数名称:validationErrors ---> System.ArgumentNullException:值不能为null。
参数名称:validationErrors
在System.ServiceModel.DomainServices.Client.QueryCompletedResult..ctor(IEnumerable 1 entities, IEnumerable
1 includedEntities,Int32 totalCount,IEnumerable`1 validationErrors)
我真的不明白这一点。什么是IEnumerable validationErrors,它出现在哪里?为什么它必须是!= null?在将我的身份验证服务从Nhibernate移植到Entity Framework之后,这种情况就开始发生了。我甚至试过谷歌搜索这个例外,显然我是迄今为止唯一遇到此问题的人。
非常感谢任何帮助。
答案 0 :(得分:0)
似乎RIA不支持属性中的linq表达式。 IEnumerable Roles中的Getter是问题所在。你必须手动填写;你不能写return (from a in User.UserRoles select a.Description).AsEnumerable();
这样的东西,它不会起作用。
答案 1 :(得分:0)