.NET Core 基本配置加Swagger
#region 添加Swagger
services.AddSwaggerGen(options =>
{
options.IncludeXmlComments($"{AppDomain.CurrentDomain.BaseDirectory}/HrManagementSystem.WebApi.xml", true);
});
#endregion
//配置跨域处理,允许所有来源
services.AddCors(r => r.AddPolicy("cors", n =>
{
n.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod();
}));
services.AddControllers().AddNewtonsoftJson(options =>
{
// 忽略循环引用
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
// 不使用驼峰
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
// 设置时间格式
options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
// 如字段为null值,该字段不会返回到前端
// options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
});
}
///
/// //此方法由运行时调用。使用此方法配置HTTP请求管道。
///
///
///
///
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
#region 添加log4net
loggerFactory.AddLog4Net();
#endregion
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
// 添加Swagger有关中间件
app.UseSwagger();
// 配置SwaggerUI
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "CoreWebApi");
});
//允许所有跨域,cors是在ConfigureServices方法中配置的跨域策略名称
//注意:UseCors必须放在UseRouting和UseEndpoints之间
app.UseCors("cors");
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
//log4net配置
```xml
<?xml version="1.0" encoding="utf-8"?>
<log4net>
<!-- Define some output appenders -->
<appender name="rollingAppender" type="log4net.Appender.RollingFileAppender">
<file value="log\log.txt" />
<!--追加日志内容-->
<appendToFile value="true" />
<!--防止多线程时不能写Log,官方说线程非安全-->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<!--可以为:Once|Size|Date|Composite-->
<!--Composite为Size和Date的组合-->
<rollingStyle value="Composite" />
<!--当备份文件时,为文件名加的后缀-->
<datePattern value="yyyyMMdd.txt" />
<!--日志最大个数,都是最新的-->
<!--rollingStyle节点为Size时,只能有value个日志-->
<!--rollingStyle节点为Composite时,每天有value个日志-->
<maxSizeRollBackups value="20" />
<!--可用的单位:KB|MB|GB-->
<maximumFileSize value="5MB" />
<!--置为true,当前最新日志文件名永远为file节中的名字-->
<staticLogFileName value="true" />
<!--输出级别在INFO和ERROR之间的日志-->
<!--过滤级别 FATAL > ERROR > WARN > INFO > DEBUG-->
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="WARN" />
<param name="LevelMax" value="FATAL" />
</filter>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
<root>
<priority value="ALL"/>
<level value="ALL"/>
<appender-ref ref="rollingAppender" />
</root>
</log4net>
//MVC .NET core 简单配置
//此方法由运行时调用。使用此方法将服务添加到容器中。
//有关如何配置应用程序的更多信息,请访问https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddSession();
services.AddHttpClient();
}
//此方法由运行时调用。使用此方法配置HTTP请求管道。
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseSession();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseStaticFiles();
app.UseRouting();
//配置注册MVC的路由
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller}/{action}/{id?}");
});
}
//.NET 使用EF
public HrSqlcontext()
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
//读取数据库链接字符串
//动态读取配置文件下得字符串
ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();//构建一个配置容器
IConfigurationBuilder configurationBuilder1 = configurationBuilder.AddJsonFile("appSettings.json"); //下载这个配置文件Microsoft.Extensions.Configuration.Json
var buid = configurationBuilder1.Build();//编译构建一次
optionsBuilder.UseSqlServer(buid["Dbcontent"]);
}
///
/// 招聘顾问表
///
public DbSet<Counselor> DBCounselor { get; set; }
///
/// 部门表
///
public DbSet<Department> DBDepartment { get; set; }
NetCore3.1 使用EntityFrameCore
1.通过Nuget包安装三个软件(最好三个)
EntityFrameworkCore.Sql Server
Microsoft.EntityFrameworkCore.Tools
Microsoft.Extensions.Configuration.Json
2.EntityFramework Core 进行数据迁移
在Vs2019 Tools>Nuget Package Manager>Package Manger Tools 使用
Add-Migration XXXX 进行数据迁移
3.如果迁移出错处理
对VS 2019中ASP.NET Core项目解决:The term ‘Add-Migration’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name
错误如上:
3.1 编译项目。首次在项目中添加EF Core后,这一步必须做,否则都找不到后续要导入的 EntityFrameworkCore.psd1 模块
3.2 找到前述文件的位置,使用Import-Module命令导入。我这里为: Import-Module C:\Users{用户名}.nuget\packages\microsoft.entityframeworkcore.tools{efcore版本号}\tools\EntityFrameworkCore.psd1
执行信息如下:
注意:如果还出错,就重启VS,Add-Migration Xxxx,Update-DataBase即可