当前位置:   article > 正文

## 简单使用.NET Core Webapi 加MVC 的配置_dotnet core webapi 浏览mvc页面

dotnet core webapi 浏览mvc页面

简单使用.NET Core Webapi 加MVC 的配置

.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;
            });

        }

        /// <summary>
        ///   //此方法由运行时调用。使用此方法配置HTTP请求管道。
        /// </summary>
        /// <param name="app"></param>
        /// <param name="env"></param>
        /// <param name="loggerFactory"></param>
        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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102

//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?}");
            });
        }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

//.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"]);
        }

        /// <summary>
        /// 招聘顾问表
        /// </summary>
        public DbSet<Counselor> DBCounselor { get; set; }
        /// <summary>
        /// 部门表
        /// </summary>
        public DbSet<Department> DBDepartment { get; set; }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

简单总结不一定准确

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即可

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/620835
推荐阅读
相关标签
  

闽ICP备14008679号