当前位置: 首页 > news >正文

营销网站开发渠道有哪些网站免费建站ppa

营销网站开发渠道有哪些,网站免费建站ppa,wordpress表单留言,wordpress小插件下载地址前言 上节我们留了一个问题,为什么EF Core中,我们加载班级,数据并不会出来 其实答案很简单,~ 因为在EF Core1.1.2 中我们在EF6.0中用到的的延迟加载功能并没有被加入,不过在EF Core 2.0中,这个功能将回归 而且这个功能是否需要被加入进去,社区也在激烈的讨论当中,有兴趣的可…前言 上节我们留了一个问题,为什么EF Core中,我们加载班级,数据并不会出来 其实答案很简单,~ 因为在EF Core1.1.2 中我们在EF6.0中用到的的延迟加载功能并没有被加入,不过在EF Core 2.0中,这个功能将回归 而且这个功能是否需要被加入进去,社区也在激烈的讨论当中,有兴趣的可以去看看: https://github.com/aspnet/EntityFramework/issues/3797 那么我们该如何加载关联的班级呢?. 直接通过Linq join当然是可以的. 我们也可以通过贪婪加载来获取,修改查询代码如下: public IActionResult ListView(){ return View(_context.UserTable.Include(aa.Class).ToList());} 效果如下: 下面我们开始今天的内容  事务 关于EF Core的事务,其实与EF 6.x几乎一样,代码如下: using (var tran _context.Database.BeginTransaction()){ try{_context.ClassTable.Add(new ClassTable { ClassName AAAAA, ClassLevel 2 });_context.ClassTable.Add(new ClassTable { ClassName BBBBB, ClassLevel 2 });_context.SaveChanges(); throw new Exception(模拟异常);tran.Commit();} catch (Exception){tran.Rollback(); // TODO: Handle failure}} 在异常中Rollback即可回滚,我这里的写法,其实有点无耻. 不过目的是告诉大家,要在Commit之前回滚. 不然会得到一个异常:This SqlTransaction has completed; it is no longer usable.” 下面我们来讲一下关于EF Core中的日志 日志 我们知道,在ASP.NET Core中,大量的使用了IOC的手法来注入我们所需要的类. EF Core其实也一样,. 首先我们需要创建一个EF日志类,继承Microsoft.Extensions.Logging.ILogger 如下: private class EFLogger : ILogger{ private readonly string categoryName; public EFLogger(string categoryName) this.categoryName categoryName; public bool IsEnabled(LogLevel logLevel){ return true;} public void LogTState(LogLevel logLevel, EventId eventId, TState state, Exception exception, FuncTState, Exception, string formatter){Debug.WriteLine($时间:{DateTime.Now.ToString(o)} 日志级别: {logLevel} {eventId.Id} 产生的类{this.categoryName});DbCommandLogData data state as DbCommandLogData;Debug.WriteLine($SQL语句:{data.CommandText},\n 执行消耗时间:{data.ElapsedMilliseconds});} public IDisposable BeginScopeTState(TState state){ return null;}} 我这里面的Debug.WriteLine是为了方便调试. 正常情况下当然是写入日志文件,可以用Log4Net 然后,我们创建一个空的日志类(用来过滤不需要记录的日志)如下: private class NullLogger : ILogger{ public bool IsEnabled(LogLevel logLevel){ return false;} public void LogTState(LogLevel logLevel, EventId eventId, TState state, Exception exception, FuncTState, Exception, string formatter){ } public IDisposable BeginScopeTState(TState state){ return null;}} 然后,我们创建一个日志提供类(注入用,EF Core1.0版本注意注释),如下: public class MyFilteredLoggerProvider : ILoggerProvider{ public ILogger CreateLogger(string categoryName){ // NOTE: 这里要注意,这是 EF Core 1.1的使用方式,如果你用的 EF Core 1.0, 就需把IRelationalCommandBuilderFactory替换成下面的类       // Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommandBuilderFactoryif (categoryName typeof(IRelationalCommandBuilderFactory).FullName){ return new EFLogger(categoryName);} return new NullLogger();} public void Dispose(){ } } 然后我们到Startup.cs的Configure()方法中注入我们的日志提供类 代码如下: public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory){loggerFactory.AddProvider(new MyFilteredLoggerProvider());....省略 } 运行程序,得到如下调试信息: 至此,我们就完成了日志的记录工作. 那么问题来了,在Asp.NET core中,我们可以这样注入进行日志记录. 如果在别的项目(比如控制台)中,怎么办? 下面就来解决这个问题. 在非Asp.NET core的程序中,我们需要把日志提供器从上下文里注入如下: protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){ base.OnConfiguring(optionsBuilder);LoggerFactory loggerFactory new LoggerFactory();loggerFactory.AddProvider(new MyFilteredLoggerProvider()); //注入optionsBuilder.UseLoggerFactory(loggerFactory);} 写在最后 写在最后,其实在EF Core的路线图中,我们可以看到,在2.0的版本将会提供一个更简单的日志记录方式 这段话是在(Features originally considered but for which we have made no progress and are essentially postponed)之后的: ..上面翻译过来的大概意思就是:我们原来考虑会加入的功能,但是现在并没有进展,基本要推迟的特点.(..总结三个字,然并卵) Simple Logging API (#1199) - We want a simple way to log the SQL being executed (like Database.Log from EF6.x). We also want a simple way to view everything being logged.嗯..翻译过来的意思就是..我们想提供一个更简单的日志记录,比如像EF6.x中的 Database.Log 这样...() 还有一个比较有趣的东西如下: 在High priority features(高度优先的功能)中还有一段话: Simple command interception provides an easy way to read/write commands before/after they are sent to the database.简单的命令拦截,将提供在发送到数据库之前/之后读取/写入命令的简单方法 我觉得这个有点类似于EF6.x的IDbCommandInterceptor. 相关文章 一步步学习EF Core(1.DBFirst) 原文地址http://www.cnblogs.com/GuZhenYin/p/6862505.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注
http://wiki.neutronadmin.com/news/72462/

相关文章:

  • 做网站的那些个人工作室公司网站建设需要注意事项
  • 企业建设网站价格网站优化总结报告
  • 有那些网站可以做推广紫色 网站
  • 淘宝网站建设评价表什么网站有教做变蛋的
  • 网站开发程序有哪些常熟市维摩剑门绿茶网站建设目标
  • 零基础学pytho 网站开发购物网站建设多少钱
  • 网页制作与网站建设完全学习手册下载网站做哪些比较有意思
  • 商丘网站建设公司网站建设对接模版
  • vue做的网站有什么搜索数据
  • 南京做网站具体需要多少钱桐城市美好乡村建设办公室网站
  • wordpress 建站后端大同百度做网站多少钱
  • 公司网站建设项目的成本计划管理员修改网站的参数会对网站的搜效果产生什么影响?
  • 网站系统建设项目北京seo优化诊断
  • 淘宝网站的建设与运营设计思路网络规划设计师如何复习
  • 武清网站开发tjniu2018网站流量怎么做
  • 深圳快速网站制南宁企业网站设计
  • 有没有专门做淘宝客的网站wordpress 主题版权
  • 网站原型设计流程wordpress可视化编辑器不显示
  • 岳阳建设公司网站建设网站公司电话销售话术
  • 企业网站优化方案范本wordpress开发网站
  • 花都建设局网站百度域名查询官网
  • 专业做网站官网服务器如何创建一个网站
  • 爱网站官网企业管理考研院校推荐
  • 红灰搭配网站模板平阴网络营销是什么
  • 音响网站模板免费下载wap网站多少钱
  • 公司网站建设 上海宜昌视频网站建设
  • 自己搞个网站网站注册免费
  • 万户网站管理系统4.0wordpress整站源码
  • 做网站服务器收费吗一手房哪个网站做信息效果好
  • 刷评论网站推广soho hotel 酒店 wordpress主题