asp.net-core - .Net Core Razor 页面使用 EF Core CRUD 编辑模型排除不可为空的字段而不会导致错误
问题描述
我正在使用 .net core 2.1 剃须刀页面。我有 CRUD 页面,我只显示模型中的一些字段。我没有显示的字段获取提供给创建模型的默认值。
我的编辑模型有问题。我的设置是我只想能够编辑模型上的某些字段。当我不包含映射到数据库中不可为空的字段的字段时,即使在创建记录时这些字段已被填充,我也会收到错误消息。
我该如何处理?我是否必须自定义编辑模型以指定要绑定到编辑表单的字段?指向文档或示例的指针会有所帮助。
解决方案
您是否附加修改后的实体对象?如果是这样,它会将所有属性标记为已修改。使用 将相关属性EntityEntry
的属性设置为,以便 EF 不会尝试在存储中更新它们的值。IsModified
false
// gets EntityEntry and begins tracking if not currently tracked
var entry = dbContext.Entry( yourEntity );
// set as modified
entry.State = EntityState.Modified;
// for each property you don't want updated in store:
entry.Property( e => e.PropertyName )
.IsModified = false;
推荐阅读
- java - 在多个线程之间共享一个有效的不可变对象
- javascript - node.js win10 puppeteer 可执行路径字符串
- wso2is - 如何在 WSO2IS 的角色中限制用户密码 OAuth 令牌
- c - 如何使用EOF从文件中读取所有数据
- go - “go get”命令在 shell 脚本中运行时不会生成 bin 文件夹
- nginx - #nginxhelp 在应用程序上使用 Windows 身份验证反向代理到 Microsoft IIS 服务器
- python - 在处理上述异常的过程中,Pandas 又发生了一个异常
- oracle - PLSQL获取表达式的类型错误
- php - 在 Bitnami Multisite Wordpress 上增加 max_input_vars = 6000
- javascript - 如何从 .then 的 promise 方法返回一个值?