DotNetCore 笔记
最近公司框架升级到DotNetCore了,但是在用post请求的时候,发现页面的post data后台并没有接收到数据,经过调查发现,netcore用法和之前的MVC5不一样,想要接收post里的data,就需要在写接口的入参增加个属性[FromBody]
#region 发布订单
/// <summary>
/// 发布订单
/// </summary>
/// <param name="_PrivateOrderPostBody">订单</param>
/// <returns></returns>
[HttpPost("CreateOrder")]
public IActionResult CreateOrder([FromBody] PrivateOrderPostBody _PrivateOrderPostBody)
{
LogService.ILOG(_PrivateOrderPostBody.PK_Farm_User_UserName, "农场用户", "农科院", "AccountController", "CreateOrder", "_PrivateOrderPostBody:" + _PrivateOrderPostBody, "开始");
string ErrorMsg = "";
int Code = ;
Response response = new Response();
var OrderId = OrderService.CreatePrivateOrder(_PrivateOrderPostBody,ref Code, ref ErrorMsg);
LogService.ILOG(_PrivateOrderPostBody.PK_Farm_User_UserName, "农场用户", "农科院", "AccountController", "CreateOrder", "_PrivateOrderPostBody:" + _PrivateOrderPostBody + ",Code:" + Code + ",ErrorMsg:" + ErrorMsg, "成功");
response.Code = Code;
response.Message = ErrorMsg;
response.Data = OrderId;
return new JsonResult(response);
}
#endregion
然后在swagger里看的结果就是

这样就可以正常接收post的参数了。
还是一个新的服务,正常是拷贝一个其他的项目过来,然后修改相应的名字即可。
理论上没问题,但是操作起来总会漏掉
比如这种情况,启动了swagger提示:

但是代码里明明有这个controller。
调查下吧,先想想给代码加个断点,跟一下,

结果就比较尴尬了,没进来。。。
因为这个是第二个执行的StartUp.cs,所以先试下第一个执行的Program.cs,加了断点能执行进去,这就比较尴尬了。
仔细一看,这两个的命名空间不一样


也就说改漏了一个。。。。
把Program那个命名空间也改成Flow就好了。也就是说这里的加载只是按照这个命名空间加载的,并不是那种调用关系。
今天自己犯了个比较二逼的错误。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
在service里注入了一个新的Repository,结果导致所有的接口都能启动,但是任何一个都是500,并不进入任何断点,特别神奇了。然后想想就把刚注入的拿掉吧,然后可以了,但是这个不得不引用啊。
结果再看遍代码,发现了,我注入的不是接口,而是实现。。。。。。
主要是这个也不报错,我就不知道怎么查了,也很自信的觉得自己不能写错。。。。
做个记录吧,真傻。
然后项目再次升级,更换数据库,用postgresql,结果是startup里的dbcontext修改了,但是T4生成的那个dbcontext忘了修改了,导致所有的repository全都使用了空的dbcontext,一样的500没有报错信息。还是尴尬。。。这个也要注意的,主要是没有报错信息,真的很烦的。
新起一个项目,然后需要根据数据库生成对应的Model和Repository,做法步骤是
//0.Nuget下載包
//.Net Core 将默认DI改为Autofac
//Install-Package Autofac.Configuration
//Install-Package Autofac.Extensions.DependencyInjection
//DBFirst开发步骤
//Microsoft.EntityFrameworkCore
//Microsoft.EntityFrameworkCore.Tools
//Microsoft.EntityFrameworkCore.Design
//Microsoft.EntityFrameworkCore.SqlServer
//Microsoft.EntityFrameworkCore.SqlServer.Design
//1.通过数据库将生成Model,调出【程序包管理控制台】,选择项目,输入以下命令 将数据库中所有表生成Model
//Scaffold-DbContext “Server=.; Database=AppsDBFarm;Persist Security Info=True;User ID = sa; password=123456;” Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
//命令解析:
//Scaffold-DbContext “数据库连接字符串” Microsoft.EntityFrameworkCore.SqlServer -OutputDir 输出的文件夹, 如无此参将生成到项目根目录
//如果只想生成某些表将使用Tables参数 如: -Tables(“table1”,”table2”,”table3”,”table4”)
//其他参数可输入 Scaffold-DbContext -? 查看帮助.
//T4生成,只需要改下tt文件,加个回车,然后保存即可。
DotNetCore 笔记的更多相关文章
- Docker笔记01-发布一个dotnetcore应用
OS:Widows 10 IDE: VS2017 Docker:Docker Desktop for Windows Windows下安装Docker需要先启用Hyper-v 在Windows 容器的 ...
- DotNETCore 学习笔记 WebApi
API Description Request body Response body GET /api/todo Get all to-do items None Array of to-do ite ...
- DotNETCore 学习笔记 MVC视图
Razor Syntax Reference Implicit Razor expressions <p>@DateTime.Now</p> <p>@DateTim ...
- DotNETCore 学习笔记 宿主
Hosting -------------------------------------------------------------------------- Setting up a Host ...
- DotNETCore 学习笔记 依赖注入和多环境
Dependency Injection ------------------------------------------------------------------------ ASP.NE ...
- DotNETCore 学习笔记 配置
Configuration var builder = new ConfigurationBuilder(); builder.AddInMemoryCollection(); var config ...
- DotNETCore 学习笔记 日志
Logging --------------------------------------------------------------------------------------- Impl ...
- DotNETCore 学习笔记 全球化和本地化
Globalization and localization ********************************************************************* ...
- DotNETCore 学习笔记 异常处理
Error Handling public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseIISP ...
随机推荐
- 解决NSTimer循环引用
NSTimer常见用法 @interface XXClass : NSObject - (void)start; - (void)stop; @end @implementation XXClass ...
- .NET非常棒的开源项目,给你意想不到的东西!
http://www.cnblogs.com/Leo_wl/p/4560146.html
- 《Cracking the Coding Interview》——第17章:普通题——题目7
2014-04-28 23:28 题目:给定一个数字,用英语把它读出来. 解法:ZOJ上有相反的题目.如果我要用中文读书来呢? 代码: // 17.7 Read an integer in Engli ...
- ASP.NET Core 2.1 源码学习之 Options[3]:IOptionsMonitor 【转】
原文链接:https://www.cnblogs.com/RainingNight/p/strongly-typed-options-ioptions-monitor-in-asp-net-core. ...
- git使用及一些配置、问题
安装https://git-for-windows.github.io/ 一.绑定用户名.邮件地址 git config --global user.name "Your Name" ...
- django orm 的查询条件
Django的ORM查询操作: 查询数据库操作是一个非常重要的技术.在Django中,查询一般就是使用filter.exclude.get三个方法来实现,在调用这些方法的时候传递不同的查询条件来实现复 ...
- atom下python好用的几个插件
atom下python好用的几个插件 atom-beautify 代码优化 atom-python-run 运行 autocomplete-python 代码补全 file-icons 图标优化 hi ...
- WeUI 在小程序中使用
才接触小程序.想找个ui框架..也不知道咋弄: 下载地址:点击打开链接 将weui-wxss-master\dist\style\weui.wxss文件导入到小程序项目的根目录下 引入weui.wxs ...
- IDEA 14注册码
用户: share密钥:78689-AFOCD-P3SDN-83DEC-BQ3UC-V6UK7用户: for密钥:13768-8VXX0-YL2BG-YBD88-2M3HN-CAOQ5用户: you密 ...
- zoj 1002 Fire Net (二分匹配)
Fire Net Time Limit: 2 Seconds Memory Limit: 65536 KB Suppose that we have a square city with s ...