在将用户更改保存到数据库时遇到问题,例如更改人员的姓名。我正在使用在新的VS2013 Web项目中使用个人身份验证自动创建的标识模型。遗憾的是,该模板不允许您更改任何用户信息,除了更改角色。我通过谷歌四处查看,我没有找到太多。有人使用基本身份代码实现更新吗?
这是我发现的最接近的东西:
正在更新用户数据-Asp。网络标识
我还没有成功地合并默认模板。本周我刚开始使用Identity,所以问题可能是我缺乏理解。
var updatedUser = new ApplicationUser
{
Id = model.UserId,
UserName = model.UserName,
CustomerId = model.CustomerId,
Email = model.EmailAddress,
FirstName = model.FirstName,
LastName = model.LastName,
PhoneNumber = model.PhoneNumber,
};
...
var result = await UserManager.UpdateAsync(updatedUser);
我的UserManager是这样创建的:
return _userManager ?? HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
我在浏览器中发现以下错误:
附加“ApplicationUser”类型的实体失败,因为相同类型的另一个实体已经具有相同的主键值。如果图形中的任何实体具有冲突的键值,则在使用“Attach”方法或将实体状态设置为“Unchanged”或“Modified”时可能会发生这种情况。这可能是因为某些实体是新的,尚未收到数据库生成的键值。在这种情况下,使用“Add”方法或“Added”实体状态跟踪图形,然后根据需要将非新实体的状态设置为“Unchanged”或“Modified”
谢啦
您还可以使用AuthContext并将状态更新为EntityState。修改。下面是一个示例。这将允许您只对数据库进行一次调用,而不是两次。
<代码>AuthContext AuthContext=新建AuthContext();authContext。条目(UpdateUser)。状态=实体状态。已修改
我遇到的问题是,我创建了一个ApplicationUser并将对象保存到数据库中。由于Identity在幕后使用实体框架,因此添加了“UpdateUser”对象的实体状态。所以实体框架试图插入到身份数据库中,导致了冲突。因此,您必须获取用户并更新实体框架返回的用户对象,才能知道实体状态已被修改。以下是工作代码:
var user = await UserManager.FindByIdAsync(model.UserId);
user.Email = model.EmailAddress;
user.CustomerId = model.CustomerId;
user.FirstName = model.FirstName;
user.PhoneNumber = model.PhoneNumber;
user.LastName = model.LastName;
var result = await UserManager.UpdateAsync(user);
问题内容: 我想从索引视图调用以下ajax.beginform后显示成功消息 这是我的结果div 而我的控制器是 但是,当我尝试此操作时,它将转到另一个视图InforMessage它不会更新结果div。没有Informessage存在。仍然会打开一个新页面,并显示消息“感谢您添加空缺”。如何解决此问题? 问题答案: 如果您重定向到另一个页面是因为您没有加载正确的脚本(或重复的脚本或它们的顺序错误)
Active Server Pages 在功能方面有所增强,更易于开发应用程序。 Microsoft 脚本调试程序。 您可以使用脚本调试程序调试 .asp 文件。请参阅调试 ASP 脚本。 事务性脚本。 ASP 页和页中使用的对象可以运行于事务环境之下。在页上的全部工作只有两种结果:提交或终止。事务可以保护应用程序免于因失败而导致数据丢失。请参阅创建事务性脚本。 管理工具。 许多应用程序设置可在
编辑用户信息的方法和创建新用户差不多(参见第 7 章),创建新用户的页面在 new 动作中处理,而编辑用户的页面在 edit 动作中处理;创建用户的过程在 create 动作中处理 POST 请求,编辑用户要在 update 动作中处理 PATCH 请求(旁注 3.2)。二者之间最大的区别是,任何人都可以注册,但只有当前用户才能更新自己的信息。我们可以使用第 8 章实现的认证机制,通过“事前过滤器
Home Assistant 的更新方式根据安装环境的不同而有所差别。 通用方法 进入安装环境后输入指令: pip3 install --upgrade homeassistant 指定版本 pip3 install homeassistant==X.XX.X 开发版本 pip3 install --upgrade git+git://github.com/home-assistant/hom
问题内容: 使用Hibernate,我想根据条件更新数据库中的数据,但是出现以下错误:“遍历的节点不能为空” 这是我的数据库描述: 这是我的JPA: 我究竟做错了什么?如果我将LEFT JOIN移到SET之前: 我得到:“正在期待SET,找到了LEFT” 如果我删除联接: 我得到:“非法尝试取消对集合的引用”。 更新值的正确方法是什么? 谢谢你的帮助! 问题答案: 第4章中的JPA 2.0规范包含
问题内容: 需要“配合”用。我正在尝试使用游标,但出现错误: 代码: 如何正确做? 更新1 没有光标时,我这样做: 我得到了唯一的错误。因此,需要从头开始而不是从头开始更新。 更新2 桌子: 需要更新(增加)字段“顺序”。“序列”具有“索引”类型,因此无法完成: 当行中的“序列”增加1时,我收到一条错误,指出已存在另一行。 问题答案: 和 至于所提问题的标题:SQL命令中没有。Postgres以任