首页 > 解决方案 > Entity Framework Core Database 首先不渲染存储过程的模型?

问题描述

数据库

我有存储过程名称GetAllCustomer


我在 EntityFramework 6x 和 Project ASP.NET MVC5 中有存储过程。

我通过调用使用db.GetAllCustomer.ToList();

但在EntityFramework Core中,它没有呈现DbSet,我需要手动创建它。它不能使用 EF 6x。

这是我的作品的图片

在此处输入图像描述

有没有办法像 EF 6x 一样简单地调用存储过程?

标签: c#stored-proceduresentity-framework-coreasp.net-core-mvcdatabase-first

解决方案


EF Core Power Tools 可以为您映射存储过程,它不是 EF Core 的内置功能。

示例用户代码:

using (var db = new NorthwindContext())
{
        var procedures = new NorthwindContextProcedures(db);

        var orders = await procedures.CustOrderHist("ALFKI");
        foreach (var order in orders)
            Console.WriteLine($"{order.ProductName}: {order.Total}");

        var outOverallCount = new OutputParameter<int?>();
        var customers = await procedures.SP_GET_TOP_IDS(10, outOverallCount);
        Console.WriteLine($"Db contains {outOverallCount.Value} Customers.");
        foreach (var customer in customers)
            Console.WriteLine(customer.CustomerId);
}

在此处阅读更多信息:https ://github.com/ErikEJ/EFCorePowerTools/wiki/Reverse-Engineering#sql-server-stored-procedures


推荐阅读