Entity framework EFCore:从函数加载值
我使用了Entity framework EFCore:从函数加载值,entity-framework,.net-core,Entity Framework,.net Core,我使用了FromSql()函数将函数的结果与数据一起加载。它在某种程度上可以工作,但我在将它映射到实体类时遇到了困难 .return this.context.SomeTable .FromSql("SELECT *, " + "[dbo].fn_RevisionNumber(CreatedOn, RevisionFamilyId) as RevisionNumber " +
FromSql()
函数将函数的结果与数据一起加载。它在某种程度上可以工作,但我在将它映射到实体类时遇到了困难
.return this.context.SomeTable
.FromSql("SELECT *, " +
"[dbo].fn_RevisionNumber(CreatedOn, RevisionFamilyId) as RevisionNumber " +
"FROM Part")
.Include(p => p.SomeOtherTable)
如果我使用[NotMapped]
,那么它不会加载数据(无论SQL发回什么,修订号都是0)
.return this.context.SomeTable
.FromSql("SELECT *, " +
"[dbo].fn_RevisionNumber(CreatedOn, RevisionFamilyId) as RevisionNumber " +
"FROM Part")
.Include(p => p.SomeOtherTable)
使用这个函数,它会加载值,但在持久化时失败。。。看起来它试图在持久化后加载计算值
.return this.context.SomeTable
.FromSql("SELECT *, " +
"[dbo].fn_RevisionNumber(CreatedOn, RevisionFamilyId) as RevisionNumber " +
"FROM Part")
.Include(p => p.SomeOtherTable)
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public int RevisionNumber { get; set; }
public int RevisionNumber { get; set; }
如果没有属性,它将加载,但在持久化时失败。。。看起来它再次尝试在持久化之后加载计算值
.return this.context.SomeTable
.FromSql("SELECT *, " +
"[dbo].fn_RevisionNumber(CreatedOn, RevisionFamilyId) as RevisionNumber " +
"FROM Part")
.Include(p => p.SomeOtherTable)
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public int RevisionNumber { get; set; }
public int RevisionNumber { get; set; }
我应该如何标记此字段以允许我加载它,而不是映射?如果通过
FromSql
语句加载项,它将读取计算值。您能解释一下为什么使用持久值和计算值吗?如果存在,函数可能应该返回持久化的值?我只希望函数中的值加载到RevisionNumber中(我不希望持久化)
.return this.context.SomeTable
.FromSql("SELECT *, " +
"[dbo].fn_RevisionNumber(CreatedOn, RevisionFamilyId) as RevisionNumber " +
"FROM Part")
.Include(p => p.SomeOtherTable)