且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在实体Framework Core中执行存储过程,而不期望映射到dbset

更新时间:2023-09-10 21:37:46

您可以使用查询类型是EF Core 2.1中引入的。

You can utilize the Query Types introduced in EF Core 2.1.

首先,您需要将类注册为查询类型:

First you need to register you class as query type:

modelBuilder.Query<ClaimDataView>();

然后您可以使用 Context.Query< ClaimDataView>()代替您当前的 Context.Claims

Then you can use Context.Query<ClaimDataView>() in place of your current Context.Claims:

var query = Context.Query<ClaimDataView>().FromSql(...);






更新(EF Core 3.x +

从EF Core 3.0开始,查询类型为与实体类型合并并重命名为无键实体类型,因此相应的代码为

Starting with EF Core 3.0, query types have been consolidated with entity types and renamed to Keyless Entity Types, so the corresponding code is

modelBuilder.Entity<ClaimDataView>().HasNoKey().ToView(null);

var query = Context.Set<ClaimDataView>().FromSql(...);