Tag: asp.net core mvc

如何使用EntityFramework 7和Asp.Net 5调用SQL存储过程

在过去的几天里,我正在寻找一些关于如何使用EntityFramework 7从Web API控制器方法中调用Stored Procedure教程。 我通过的所有教程都反过来展示了它,即Code First方法。 但我已经有了一个数据库,我需要用它来构建一个Web API 。 各种业务逻辑已经编写为存储过程和视图,我必须使用来自Web API的那些逻辑。 问题1:这是否可以继续使用EF7 Database First方法并使用上面的数据库对象? 我通过以下NuGet命令将EntityFramework 6.1.3安装到我的包中: install-package EntityFramework ,它将版本6.1.3添加到我的项目中,但立即开始显示错误消息(请参阅下面的屏幕截图)。 我不清楚如何解决这个问题。 我有另一个测试项目,在project.json我可以看到两个如下的条目: “EntityFramework.MicrosoftSqlServer”: “7.0.0-rc1-final”, “EntityFramework.MicrosoftSqlServer.Design”: “7.0.0-rc1-final”, 但是,当我在Nu-Get包管理器中搜索时,我看不到这个版本! 只有6.1.3即将到来。 我的主要目标是从现有数据库中使用已编写的存储过程和视图。 1)我不想使用ADO.Net ,而是想使用EntityFramework来使用ORM 2)如果EntityFramework 6.1.3能够从现有数据库调用Stored Procs和Views ,我如何解决错误(截图)? 实现这一目标的最佳做法是什么?

如何阅读ASP.NET Core Response.Body?

我一直在努力从ASP.NET核心操作中获取Response.Body属性,而我能够识别的唯一解决方案似乎不是最佳的。 该解决方案需要将Response.Body与MemoryStream交换,同时将流读入字符串变量,然后在发送到客户端之前将其交换回来。 在下面的示例中,我试图在自定义中间件类中获取Response.Body值。 Response.Body出于某种原因是ASP.NET Core中唯一的属性? 我在这里遗漏了什么,或者这是一个疏忽/错误/设计问题? 有没有更好的方法来阅读Response.Body ? 当前(次优)解决方案: public class MyMiddleWare { private readonly RequestDelegate _next; public MyMiddleWare(RequestDelegate next) { _next = next; } public async Task Invoke(HttpContext context) { using (var swapStream = new MemoryStream()) { var originalResponseBody = context.Response.Body; context.Response.Body = swapStream; await _next(context); swapStream.Seek(0, SeekOrigin.Begin); string responseBody = new StreamReader(swapStream).ReadToEnd(); swapStream.Seek(0, […]

ASP.NET Core中的services.AddTransient,service.AddScoped和service.AddSingleton方法有什么区别?

我想在Asp.Net Core中实现dependency injection 。 因此,在将此代码添加到ConfigureServices方法之后,两种方式都有效。 services.AddTransient和service.AddScope方法之间有什么区别是Asp.Net Core? public void ConfigureServices(IServiceCollection services) { // Add framework services. // Add application services. services.AddTransient(); services.AddScoped(); }