我有一张表。比方说:
表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。