我是WCF的全新品牌,我想知道如何構建我的設計。 我想公開所有我的域對象的方法能夠獲取和設置它們的屬性。我把它們全部分成了自己的界面。即)WCF多個服務合同
public interface IGroupDAO {
IEnumerable<Group> FindGroup(string criteria);
Group GetGroup(int groupID);
IEnumerable<Group> GetSubGroups(int groupID);
List<IDMatch> UpdateGroups(Group[] groups);
}
public interface IUserDAO {
IEnumerable<User> FindUser(string criteria);
IEnumerable<User> GetSubUsers(int userID);
User GetUser(int userID);
List<IDMatch> UpdateUsers(User[] users);
}
... etc
從,如果你爲每個服務合約創建一個終點我明白的終點是所有獨立的權利?我問的原因是,如果我想創建一個容納所有更新語句的事務。即
CreateTransaction();
UpdateGroups(groups);
UpdateUsers(user);
CommitTransaction();
如果我分開暴露所有的服務合同,這是可能做到的嗎?我希望確保在提交事務之前保存所有內容,以便我不會將數據模型置於未知狀態。
我有一個想法是將所有的接口聚合在一起
public interface IAppDAO : IGroupDAO, IUserDAO {}
這樣我可能暴露一切,很容易在需要時重新排序服務上的更新。因此,如果我必須在用戶面前保存一組子組,則可以保存其他組或其他任何奇怪的情況。我想保留服務中的所有保存邏輯,以便客戶端可以啞巴並說「保存所有這些東西」,然後在我的提交中,服務應該正確地重新排列所有內容並更新適當的來源。
讓我知道,如果我瘋了,或者如果我能以不同的方式建築這個?
感謝
P.S)我有一個問題...如果我暴露我必須連接到每一個單獨的權利多個服務合同?所以我必須分別驗證每一個?
我還會公開DAO接口來獲取對象嗎?即GetUser(int id);我喜歡更新的想法,我可以通過所有的東西。 – HaxElit 2010-02-23 17:46:20
不,DAO接口是內部的,不應該暴露。您只公開將被客戶端使用的方法。要實現那些依賴DAO接口的方法。 – 2010-02-23 17:56:03