mysql - Pomelo.EntityFrameworkCore.MySql 数据库优先和生成列
问题描述
在我的表中,我有一个 Decimal 类型的 Generated 列,
COLUMN `quantidadeTotal` DECIMAL(18,4) GENERATED ALWAYS AS (((`quantidade` + `quantidadeReservada`) + `quantidadeBloqueada`)) VIRTUAL;
这是其他 3 列也是十进制类型的总和,当我执行“脚手架”时会出现问题,生成的模型以这种格式附带此列
public decimal? QuantidadeTotal { get; set; }
并且在生成的上下文中也参考了
entity.Property(e => e.QuantidadeTotal)
.HasColumnName("quantidadeTotal")
.HasColumnType("decimal(18,4)");
如果我尝试在表中插入一些记录,则会出现错误,即使在 Generated 列中没有通知任何内容,我也必须在上下文和模型中删除该列的引用才能工作。脚手架是否有任何配置可以忽略这种类型的列或任何特殊处理?
如果没有,每次我做脚手架时,我都必须手动调整所有字段,这将是很多工作。
Pomelo.EntityFrameworkCore.MySql v3.2.4
谢谢!
解决方案
感谢您在我们的存储库中将这个错误报告为Database first 和 Generated column #1256!
我们修复了它:
- 3.2.x:为计算列添加脚手架支持 #1257
- 5.0.0+:为计算列添加脚手架支持,包括 STORED 支持 #1260
推荐阅读
- reactjs - Typescript:如何通过自动完成向函数动态添加方法?
- javascript - jQuery 中的第二个子值检查
- ios - 如何在 iOS Swift 应用程序中使用 USB 打印机通过 iPad 打印?
- nlp - 如果我选择的词在预训练的词嵌入矩阵中没有任何嵌入向量怎么办?
- angular - 向 FormArray 提供除空数组以外的任何内容时,Angular 自定义验证器会中断
- flutter - 'AnimatedContainer'宽度的来回动画从设备屏幕的全宽到Flutter中的特定值
- java - LocalDateTime.parse 中缺少秒 (00)
- android - 尽管调试版本工作正常,但 Flutter 发布 apk 崩溃
- java - 如何获取路由器的“公共”接口 IP?
- rust - Rust - 在 Vec 中获取组件
> (ECS)