SQLite:table 中不存在列,但可能是某些查询中的 generated/added
SQLite: Not existing column in table, but may be generated/added from some queries
我有一个table。假设:
表A
- 编号
- A 列
C# 实体使用 Id, ColumnA, int ColumnB
.
属性定义
我希望在正常情况下,ColumnB
设置为 -1,并且在执行 RawSQL 时,我可以在 SELECT 子句中包含此列属性.
原始 SQL
SELECT *, 123 AS ColumnB FROM TableA
尝试次数
我尝试在 ColumnB
属性 上使用 NotMapped
属性 ==> 正常案例加载没有问题,但使用具有此列的 RawSQL added/generated,值不在属性.
我尝试在 ColumnB
属性 上使用 DatabaseGenerated(DatabaseGeneratedOption.Computed)
==> RawSQL 有效,但现在尝试加载没有 Raw[=58= 的实体] 崩溃。
我尝试使用:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<TableA>().Property(m => m.ColumnB).HasComputedColumnSql("-1");
}
但结果与上次尝试相同。
如果不创建覆盖 TableA class 并包含 ColumnB 属性 的新 class,是否有办法获得此行为?
我最终选择了创建一个新的子类。但是,它给我带来了另一个问题,我也解决了。参见 。
我有一个table。假设:
表A
- 编号
- A 列
C# 实体使用 Id, ColumnA, int ColumnB
.
我希望在正常情况下,ColumnB
设置为 -1,并且在执行 RawSQL 时,我可以在 SELECT 子句中包含此列属性.
原始 SQL
SELECT *, 123 AS ColumnB FROM TableA
尝试次数
我尝试在 ColumnB
属性 上使用 NotMapped
属性 ==> 正常案例加载没有问题,但使用具有此列的 RawSQL added/generated,值不在属性.
我尝试在 ColumnB
属性 上使用 DatabaseGenerated(DatabaseGeneratedOption.Computed)
==> RawSQL 有效,但现在尝试加载没有 Raw[=58= 的实体] 崩溃。
我尝试使用:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<TableA>().Property(m => m.ColumnB).HasComputedColumnSql("-1");
}
但结果与上次尝试相同。
如果不创建覆盖 TableA class 并包含 ColumnB 属性 的新 class,是否有办法获得此行为?
我最终选择了创建一个新的子类。但是,它给我带来了另一个问题,我也解决了。参见