我的问题围绕最佳实践发展。
现在,我将实体框架与ASP.NET结合使用,并希望它具有最佳性能。
您通常是在添加一个记录之前在数据库中检查一个现有记录,还是依赖于引发的异常,甚至期望给出的参数是相关且有效的。
示例:(带有身份的ASP.NET)
public ResultWrapper AddUserToRole(string user, bool userId, string role, bool roleId)
{
ApplicationUser appUser = FindUser(user, userId);
ApplicationRole appRole = FindRole(role, roleId);
if (appUser == null || appRole == null)
return new ResultWrapper(false, "Unknown user or role");
else
{
IdentityResult result = userManager.AddToRole(appUser.Id, appRole.Name);
db.SaveChanges(); // AutoSaveChanges is false, so update.
return new ResultWrapper(result.Succeeded, result.Errors);
}
}
除了是一个非常基于意见的问题,我认为还有一些适当的准则可以遵循。
您通常是在添加一个记录之前在数据库中检查一个现有记录,还是依赖于引发的异常,甚至期望给出的参数是相关且有效的。
我认为这完全取决于上下文。
对于极高的事务,我将编写一个存储过程。
否则,这取决于操作的并发性,在这种特殊情况下,我认为不会有多个人试图将同一个人添加到同一角色中,因此将异常情况减至最少并可以接受。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句