Я новичок в 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 {}
Таким образом, я мог бы разоблачить все и легко переупорядочить обновления в службе, если это необходимо.Так что, если бы мне пришлось сохранить подмножество групп перед пользователем, я мог бы сохранить остальные группы или любые странные случаи, подобные этому.Я хотел бы сохранить всю логику сохранения в службе, чтобы клиент мог быть глупым и сказать «Сохранить все эти вещи», тогда при моем подтверждении служба должна переупорядочить все правильно и обновить нужные источники.
Дайте мне знать, если я сумасшедший или я мог бы спроектировать это по-другому?
Спасибо
пс) У меня есть еще один вопрос ... если я выставляю несколько контрактов на обслуживание, у меня естьподключиться к каждому индивидуально правильно?Таким образом, я должен был бы подтвердить подлинность каждого из них в отдельности?