Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework EFCore:从函数加载值_Entity Framework_.net Core - Fatal编程技术网

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)