我应该使用什么事务IsolationLevel?

时间:2011-07-10 08:36:44

标签: c# wcf

我正在编写一个WCF Web服务,允许在系统中注册新用户。所以我有以下操作合同:

 [ServiceContract]
 public interface ISecurityService
 {
     /// <summary>
     /// Register new user in system, if no exceptions were thrown 
     /// user was registered successfully
     /// </summary>
     [OperationContract]
     [FaultContract(typeof(SecurityFaultException))]
     void Register(string userName, string password);
 }

如何同步Register方法调用以防止注册两个具有相同名称的用户,这个想法很简单?

我考虑过使用IsolationLevel.Serializable,但我不确定这个解决方案。有人可以给我一个很好的建议或分享一些关于WCF服务同步的好习惯。

更新: 我将用户保存在数据库中。

1 个答案:

答案 0 :(得分:2)

如果在db中保存用户,则使用默认的Isolationlevel(ReadCommitted)就足够了,只需在UserName列中放置一个唯一的约束或主键即可防止重复值。