2012-02-22 29 views
0

我再次需要一些關於從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的結果是「枚舉沒有結果」

再次感謝幫助引導我朝着正確的方向。

回答

1

RIA服務通過創建更改集(實際上是一組更改)並僅將這些更改發送到服務器來工作。執行CRUD的方法更像是實體框架,而不是直接的方法調用。

在客戶端,您將在域上下文的用戶集合上調用Remove方法。

在接收端,它經歷的種種變化,並說:「這是一個對象刪除」

  • Q.
  • A.是...
  • 問:「它是什麼類型的對象?
  • A. MembershipServiceUser
  • 問:「我們有一種叫做Delete的方法需要一個MembershipServiceUser參數嗎?」
  • 答:是的...

然後調用從變更的對象,方法...

+0

感謝您的信息高科技型。 – Neill 2012-02-22 11:00:41

+0

請參閱更新的問題。我卡在那裏,因爲這個評論框太長了 – Neill 2012-02-22 11:07:09

+0

您必須引用從先前查詢返回的對象的同一實例。你不能只是'新'一個。在上下文中搜索要刪除的項目,然後刪除該特定實例。 – 2012-02-22 11:34:59

相關問題