问题描述
我有一个以 EF Core 作为数据访问层的 blazor 服务器应用。
-
当用户访问页面时,我从 DbContext 加载实体,用数据填充 VM 并处理数据库上下文。
using var dbContext = DbContextFactory.CreateDbContext(); var entity = dbContext.Products.Find(Id); viewmodel = new viewmodel { Id = entity.Id,Name = entity.Name.. }
-
当用户单击“保存”按钮时,我再次从新的 DbContext 实例加载实体,将所有可编辑字段从 VM 复制到实体并调用 DbContext.SaveChanges。
using var dbContext = DbContextFactory.CreateDbContext(); var entity = dbContext.Products.Find(Id); entity.Name = viewmodel.Name; ..... dbContext.SaveChanges();
我想避免将所有字段从虚拟机复制到实体,因为它会同时覆盖对数据库所做的所有更改。 我只想更新用户编辑的字段。
在 viewmodel 中实现更改跟踪,尤其是在更复杂的层次结构中是一项非常重要的任务。
如何在 Blazor 应用中有效地执行此操作?尤其是没有不必要的 DRY 违规。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)