SQLite:表中不存在列,但可能是从某些查询中生成/添加的



我有一张表。比方说:

表A

  • Id
  • 第A列

C#实体是用属性Id, ColumnA, int ColumnB定义的。

我希望在正常情况下,ColumnB被设置为-1,并且在执行RawSQL时,我可以在SELECT子句中使用这一列来填充属性。

原始SQL

SELECT *, 123 AS ColumnB FROM TableA

尝试次数

我尝试在ColumnB属性==>上使用NotMapped属性;正常情况下加载没有问题,但使用添加/生成该列的RawSQL时,该值不在属性中。

我尝试在ColumnB属性==>上使用DatabaseGenerated(DatabaseGeneratedOption.Computed);RawSQL可以工作,但现在尝试在没有RawSQL崩溃的情况下加载实体。

我尝试使用:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<TableA>().Property(m => m.ColumnB).HasComputedColumnSql("-1");
}

但和之前的尝试结果一样。

如果不创建一个覆盖TableA类并包含ColumnB属性的新类,是否有办法获得这种行为?

我最终选择创建一个新的子类。但是,它给我带来了另一个问题,我也解决了这个问题。请参阅在FromRawSql查询中使用Include。

最新更新