新闻中心
EF Core NotMapped注解怎么用 EF Core忽略属性映射教程
[NotMapped]用于标记不参与数据库映射的属性或类,避免EF Core为其生成列或表;适用于计算属性、临时字段、敏感数据等,既可标注在属性上也可标注在类上,Fluent API中亦可用Ignore替代。

EF Core 的 [NotMapped] 注解用来告诉框架:这个属性不参与数据库映射,不会生成对应列,也不会在查询或保存时读写数据库。它最常用于计算属性、临时字段、前端展示用的组合值,或者纯内存中使用的辅助数据。
什么时候必须加 [NotMapped]?
只要属性不对应数据库中的任何一列,又确实定义在实体类里(比如为了方便前端展示或业务逻辑),就必须标记 [NotMapped],否则 EF Core 会尝试为它建列,导致迁移失败或运行时报错。
- 只读计算属性(如
public string FullName => FirstName + " " + Las)
tName; - 临时状态字段(如
public bool IsSelected { get; set; },仅用于页面勾选) - 敏感但不落库的数据(如
public string TempToken { get; set; }) - 与外键同名但非导航用途的普通字段(避免被误判为关联)
怎么写?基础用法很简单
确保引入命名空间:using System.ComponentModel.DataAnnotations.Schema;
然后直接加在属性上:
[NotMapped]
public string DisplayCode => $"{GoodsName.Substring(0, 1)}:{Location}";
注意:该属性可以是自动属性、只读属性(只有 get)、或完整属性(get + set),EF Core 都会跳过——前提是加了 [NotMapped]。
不加的话,哪怕只有 get,EF Core 也可能因其他配置(如 Fluent API 中未忽略)而报错;加了就明确、安全、无歧义。
Ghostwriter
Replit推出的AI编程助手,一个强大的IDE,编译器和解释器。
238
查看详情
类级别也能用 [NotMapped]
如果整个类只是做中间计算或 DTO 用途,不希望它在数据库里有任何表,可以直接标在类上:
[NotMapped]
public class CalculationResult
{
public string Description { get; set; }
public decimal Value { get; set; }
}
这样 EF Core 在构建模型时会完全跳过这个类型,不会为它生成迁移,也不会出现在 DbContext 的 DbSet 中。
替代方案:Fluent API 忽略属性
如果你倾向把映射逻辑集中到 OnModelCreating 里,也可以不用注解:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Goods>()
.Ignore(g => g.GoodsCode);
}
这种方式适合团队规范要求“注解只管校验,映射全走 Fluent”,也方便统一管理忽略项。但日常开发中,[NotMapped] 更直观、更易维护。
基本上就这些。用对地方,不漏加,不乱加——EF Core 就不会为你的“假字段”建真列。
以上就是EF Core NotMapped注解怎么用 EF Core忽略属性映射教程的详细内容,更多请关注其它相关文章!
# 也不
# 长沙搜狗问答推广营销
# 网站建设 验证码
# 网站优化排名软件推
# 如何营销续集电影推广
# 广安网站优化
# 红帽seo服务是什么
# 天津快手营销推广怎么做
# 总结seo的优点有哪些
# 甘肃seo培训哪个适用
# 南汇集团网站建设
# 就不
# 前端
# 如果你
# 加载
# 文件上传
# 上传文件
# 如何实现
# 跳过
# 命令行
# 会为
# 敏感数据
# app
# go
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
Excel中VLOOKUP的第四个参数是干什么用的_Excel VLOOKUP第四参数作用解析
Win11怎么开启卓越性能模式 Win11电源选项启用高性能释放硬件潜力【方法】
Win11怎么开启高性能模式_Windows 11电源计划优化设置
顺丰快递查单号物流信息 顺丰快递小程序查询入口
优化Log4j2控制台输出性能:解决异步日志瓶颈
VS Code远程开发时如何处理文件权限问题
使用 Pandas 高效处理 .dat 文件:字符清理与数据计算
AO3官网镜像链接 Archive of Our Own同人文在线浏览
Lar*el表单中优雅地处理“返回”按钮以规避验证:最佳实践指南
Lar*el如何生成PDF或Excel文件_Lar*el文档导出工具与使用教程
WordPress插件开发:正确注册卸载钩子与避免常见陷阱
腾讯QQ邮箱登录入口_QQ邮箱官方网站使用地址
Yandex官方入口网址 Yandex俄罗斯搜索引擎最新在线地址
age动漫网站入口 age动漫官网直接访问入口
必由学登录入口 必由学官方网站在线访问链接
学习通网页版官方登录 超星学习通电脑端入口指南
快手极速版在线观看 官方网页版登录地址
Excel文件在线转换快速入口 Excel在线格式转换网站
冬*霸灯泡不亮怎么办_浴霸取暖灯一盏不亮的灯座清洁修复法
KFC游戏互动怎么赢取优惠券_KFC线上游戏活动参与与优惠代码赢取教程
React项目中导航栏Logo自适应布局:避免裁剪与布局溢出
神庙逃亡小游戏在线玩 神庙逃亡小游戏入口
Yandex免登录官网入口_俄罗斯Yandex搜索引擎直达链接
Promise错误处理:在catch后终止链式then执行的策略
响应式图片在网页设计中的正确实现方法
Win11如何使用Windows Sandbox Win11沙盒功能开启与使用教程【详解】
浏览器打开即用 美图秀秀网页版入口
J*a里如何实现线程安全的懒加载单例_懒加载单例实现方法解析
《马克思佩恩3》早期版本曝光 UI设计曾多次调整!
包子漫画官方网站在线链接-包子漫画在线阅读平台主页地址
响应式容器内容自动缩放与宽高比维持教程
MongoDB聚合管道:正确匹配对象数组中_id的方法
怎么在浏览器上运行HTML文件_浏览器运行HTML文件技巧【技巧】
在J*a项目里如何构建对象之间的契约_接口约束的实际落地
sublime如何优雅地处理行尾空格_sublime自动清理多余空白字符配置
解决Django多数据库/多Schema环境下外键迁移问题
必由学官网首页入口 必由学教师网页版登录指南
J*aScript异步迭代器_j*ascript异步遍历
解决Flask中Quill编辑器内容提交失败及TypeError的指南
2306选座时如何选靠窗位置_12306选座靠窗座位查看方法解析
AO3网页版合集入口 Archive of Our Own同人作品浏览指南
uc浏览器网页版极速入口 uc网页浏览器网页版流畅体验
c++如何实现一个简单的ECS框架_c++数据驱动设计与游戏开发
抖音DOU+怎么投最有效 抖音付费推广的ROI提升技巧
小米Civi 4录制视频过暗_小米Civi 4亮度优化
不会效仿卡普空!《铁拳》制作人澄清:不采取赛事付费|直播|
如何优雅地扩展SprykerGlue后端API授权逻辑,使用spryker/glue-backend-api-application-authorization-connector-extension
天眼查怎么看公司融资情况 天眼查企业融资历史查询步骤【攻略】
特斯拉自动驾驶房车计划曝光 原型车将于2027年亮相
期待已久:小米17 Ultra、小米首款NAS本月登场


2025-12-15
浏览次数:次
返回列表
tName;