我再次需要一些关于从silverlight调用域服务类方法的帮助。如何从域服务类调用方法
这与我昨天解决的问题有些相关。再次感谢! 对于那些有兴趣谁,我昨天的问题都可以在这里找到:
Using ASP.net membership to get aspnet_Users in silverlight
现在到我目前的问题。
我在域服务类下面的方法称为MembershipData
[RequiresRole("Managers")]
public void DeleteUser(MembershipServiceUser user)
{
Membership.DeleteUser(user.UserName);
}
- 此代码是从kylemc的教程
现在我该如何调用该方法从Silverlight内?
我从昨天的问题理解
public IEnumerable<MembershipServiceUser> GetAllUsers()
需要通过定义查询,然后运行查询,然后调用OnGetAllUsersLoaded当把结果返回调用。
我不确定的是,你是否需要以这种方式调用该方法,因为它的返回类型?
显然,public void DeleteUser(MembershipServiceUser user)没有返回类型,所以不能用这种方式调用。
这似乎并不可能做到:
MembershipDataContext context = new MembershipDataContext();
MembershipServiceUser user = new MembershipServiceUser();
user.UserName = "bob";
context.DeleteUser(user);
但后来我怎么使用deleteuser方法?
任何帮助,非常感谢。
亲切的问候,
奥尼尔
更新
感谢您的信息高科技型。我仍然需要解决一个问题。也许我仍然没有做正确的事情。
我现在正在创建一个MembershipServiceUser的新实例,我们称之为msu。 然后分配msu.UserName和msu.Email用户的详细信息,在那之后调用
context.MembershipServiceUsers.Remove(msu)
其中上下文是我MembershipData域服务环境,我已经检查了
context MembershipServiceUsers results
确实有我的用户信息。然后我得到以下错误
“指定的实体不包含在此EntitySet中。“
我肯定在MSU的数据是正确的,所以任何想法,为什么我收到此错误? 非常感谢
更新2
我在正确的轨道上的东西,如下面...
MembershipServiceUser usr = (from a in context.MembershipServiceUsers
where a.UserName == "bob"
select a).First();
context.MembershipServiceUsers.Remove(usr);
context.SubmitChanges(DeleteUser_completed, null);
抑或是这样了,因为在我的回调DeleteUser_completed(SubmitOperation左右) so.HasError =真 而这样的变更? - > RemovedEntities = 1,BU t所以EntitiesInError的结果是“枚举没有结果”
再次感谢帮助引导我朝着正确的方向。
感谢您的信息高科技型。 – Neill 2012-02-22 11:00:41
请参阅更新的问题。我卡在那里,因为这个评论框太长了 – Neill 2012-02-22 11:07:09
您必须引用从先前查询返回的对象的同一实例。你不能只是'新'一个。在上下文中搜索要删除的项目,然后删除该特定实例。 – 2012-02-22 11:34:59