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 ...
随机推荐
- [转]全图形PPT设计指南
三.什么时候使用 全图形PPT并不适用于所有时候,一般来说,我们在以下场合可以考虑使用:陈述一个故事.名人简介.产品介绍.读书笔记.心灵鸡汤.生活情趣等. 四.如何制作全图形PPT 全图形PPT的制作 ...
- 项目中自己觉得比较好的Erlang语法
1.Lists 中处理合并Key相同的Tuple CashInfo1 = [{?PAY_TYPE_YUANBAO, NeedYuanBao + OldNeedYuanbao}|lists:keydel ...
- python - web自动化测试 - 元素操作 - 鼠标键盘
# -*- coding:utf-8 -*- ''' @project: web学习 @author: Jimmy @file: 鼠标操作.py @ide: PyCharm Community Edi ...
- 开源api文档
蒲公英——API文档 https://www.pgyer.com/doc/api
- Python学习-KindEditor-富文本编辑框
1.进入官网 2.下载 官网下载:http://kindeditor.net/down.php 本地下载:http://files.cnblogs.com/files/wupeiqi/kindedit ...
- ssh-centos74.sh
#!/bin/bash sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config sed -i 's/#Us ...
- Opencv3.4.5安装包
这个资源是Opencv3.4.5安装包,包括Windows软件包,Android软件包,IOS软件包,还有opencv的源代码:需要的下载吧. 点击下载
- js 图片自动循环切换setInterval();
stlye样式定义 <style type="text/css"> body{background-image: url(img/001.jpg ...
- 【转】Unity3D Transform中有关旋转的属性和方法测试
Transform有关旋转个属性和方法测试 一,属性 1,var eulerAngles : Vector3 public float yRotation = 5.0F; void Update() ...
- Struts1 生成Action请求的几种方式分析
1 直接硬编码 <a href="/Lesson14_Struts1_Demo1//user/regUserDo.do">注册</a><br/> ...