C# 我应该使用什么事务隔离级别?
我正在编写一个WCF web服务,它允许在系统中注册新用户。因此,我有以下运营合同:C# 我应该使用什么事务隔离级别?,c#,wcf,C#,Wcf,我正在编写一个WCF web服务,它允许在系统中注册新用户。因此,我有以下运营合同: [ServiceContract] public interface ISecurityService { /// <summary> /// Register new user in system, if no exceptions were thrown /// user was registered successfully /// </s
[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);
}
[服务合同]
公共接口ISecurityService
{
///
///若未引发异常,则在系统中注册新用户
///用户已成功注册
///
[经营合同]
[FaultContract(类型(SecurityFaultException))]
无效注册表(字符串用户名、字符串密码);
}
这个想法很简单,如何同步Register
方法调用以防止两个同名用户注册
我考虑过使用IsolationLevel.Serializable
,但我不确定这个解决方案。有人能给我一个好的建议或分享一些关于WCF服务同步的好做法吗
更新:
我将用户保存在数据库中。如果将用户保存在数据库中,使用默认的Isolationlevel(ReadCommitted)就足够了,只需在用户名列中添加一个唯一的约束或主键,以防止重复值。为什么要序列化注册调用?(这是为了理解事务隔离需求的性质。)您将注册用户存储在哪里?在内存中还是在数据库中?我认为当UserName在数据库中有唯一的约束时就足够了。IsolationLevel不应该与Insert相关。我将用户存储在数据库中,当我谈到事务隔离级别时,我指的是数据库访问。谢谢你的建议。