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

网站编辑工作内容南通网站建设系统方案

网站编辑工作内容,南通网站建设系统方案,wordpress mu 2017,宁波网站推广优化联系电话微信公众号#xff1a;趣编程ACE关注可了解更多的.NET日常实战开发技巧#xff0c;如需源码 后台回复 源码 即可;如果觉得对你有帮助#xff0c;欢迎关注老生常谈 C#中 IEnumerable 与IQueryableIEnumerable 与 IQueryable 对于.Neter来说并不陌生#xff0c;今天我就着重阐…微信公众号趣编程ACE关注可了解更多的.NET日常实战开发技巧如需源码 后台回复 源码 即可;如果觉得对你有帮助欢迎关注老生常谈 C#中 IEnumerable 与IQueryableIEnumerable 与 IQueryable 对于.Neter来说并不陌生今天我就着重阐述下两者加载方式的异同。前文回顾【温故知新】C# Linq中 Select SelectMany 使用技巧IEnumerableT1.接口位于命名空间System.Collections中是可以使用foreach进行枚举集合的基接口2.里面有一个GetEnumeartor()方法用来迭代集合不是线程安全的 调用MoveNext()来顺序读取下一个集合中对象3.不支持在集合上添加、删除对象4.支持延迟执行主要是yield 关键字5.不支持延迟加载不适用于分页场景6.读取数据库或者服务数据时IEnumerable将所有数据查询出放置内存中然后再进行相应筛选操作7.对于内存中的数据我们使用IEnumerable来操作好了那我们通过代码来演示下IEnumerable为啥不在服务端进行过滤筛选操作新建一个基于.net6的控制台程序2.安装SqlLite的EFCore依赖包1Install-Package Microsoft.EntityFrameworkCore.Sqlite3.创建实体1public class BloggingContext : DbContext2{3    public DbSetBlog Blogs { get; set; }4    public DbSetPost Posts { get; set; }56    public string DbPath { get; }78    public BloggingContext()9    { 10        var folder  Environment.SpecialFolder.LocalApplicationData; 11        var path  Environment.GetFolderPath(folder); 12        DbPath  System.IO.Path.Join(path, blogging.db); 13    } 14 15    // The following configures EF to create a Sqlite database file in the 16    // special local folder for your platform. 17    protected override void OnConfiguring(DbContextOptionsBuilder options) 18         options.UseSqlite($Data Source{DbPath}); 19} 20 21public class Blog 22{ 23    public int BlogId { get; set; } 24    public string Url { get; set; } 25 26    public ListPost Posts { get; }  new(); 27} 28 29public class Post 30{ 31    public int PostId { get; set; } 32    public string Title { get; set; } 33    public string Content { get; set; } 34 35    public int BlogId { get; set; } 36    public Blog Blog { get; set; } 37}4.创建数据库1Install-Package Microsoft.EntityFrameworkCore.Tools 2Add-Migration InitialCreate 3Update-Database5.对数据库进行插入和读取操作1using System;2using System.Linq;34using var db  new BloggingContext();56Console.WriteLine($数据库路径: {db.DbPath}.);78// Create9Console.WriteLine(Inserting a new blog); 10db.Add(new Blog { Url  http://blogs.msdn.com/adonet }); 11db.SaveChanges(); 12 13// Read 14Console.WriteLine(Querying for a blog); 15IEnumerableBlog blog  db.Blogs; 16 17var data  blog. 18    Where(b  b.Url  http://blogs.msdn.com/adonet).Take(2); 19 20foreach (var item in data) 21{ 22    Console.WriteLine(item); 23}6.为项目集成日志一、建立一个ConsoleLogger日志类并继承ILogger接口public IDisposable BeginScopeTState(TState state)2{3            return null;4}56public bool IsEnabled(LogLevel logLevel)7{8   switch (logLevel)9   { 10    case LogLevel.Trace: 11    case LogLevel.Information: 12    case LogLevel.None: 13        return false; 14    case LogLevel.Debug: 15    case LogLevel.Warning: 16    case LogLevel.Error: 17    case LogLevel.Critical: 18    default: 19        return true; 20   } 21} 22 23public void LogTState(LogLevel logLevel, EventId eventId, TState state, Exception? exception, FuncTState, Exception?, string formatter) 24{ 25        Console.WriteLine($Level:{logLevel},EventId:{eventId.Id},EventName:{eventId.Name}); 26        if(state !null) 27        { 28            Console.WriteLine($State:{state}); 29        } 30 31        if(exception!null) 32        { 33            Console.WriteLine($Exception:{exception.Message}); 34        } 35}二、创建一个ConsoleLoggerProvider类并继承ILoggerProvider接口1public class ConsoleLoggerProvider : ILoggerProvider2{3   public ILogger CreateLogger(string categoryName)4   {5      return new ConsoleLogger();6   }78   public void Dispose()9   { 10 11   } 12}三、控制台引入日志服务1var loggerFactorydb.GetServiceILoggerFactory(); 2loggerFactory.AddProvider(new ConsoleLoggerProvider());通过上图箭头指向的控制台输出的sql语句可以显然的看见IEnumerable在查询数据库是只进行了 select * from 操作并没有在数据库里面进行我们相应的过滤操作而是将所有的数据一窝蜂查出来然后灌入内存中最后在内存中进行过滤操作。那么我们将db.Blogs 改为IQueryable类型呢1IQueryableBlog blog  db.Blogs;很明显可以看出IQueryable将语句转为了我们需要的sql,因为IQueryable接受一个表达式树表达式树将我们语句拼接最后转化为查询sql,就实现了在数据库层次的过滤筛选。IQueryable1.IQueryable 位于System.Linq命名空间2.IQueryable 支持延迟执行3.IQueryable 支持延迟加载因此适用于类分页的场景。4.本身也是扩展自IEnumerable
http://www.pierceye.com/news/771115/

相关文章:

  • 网站搬家内页打不开重庆市建设工程信息网怎么进不去
  • 深圳 做公司网站网站用什么建设
  • 网站更换空间对优化的影响营销号视频生成器手机版
  • 南宁大型网站推广公司昆山网站制作哪家好
  • 格尔木哪里有做网站的wordpress编辑器排版
  • 怎样开电商襄阳抖音seo找哪家
  • 个人网站 域名舞阳专业做网站
  • 做国外购物网站凤山网站seo
  • 苏州制作网站的有几家WordPress文章编辑链接
  • 免费看电视剧的网站2021网站建设坂田
  • 网站建设中 目录怎么做更好wordpress最好用的虚拟主机
  • 网站百度网盘南京市建设局网站
  • 让别人做网站多久开始注册域名公司注册地址提供
  • 手机网站 设计趋势建设银行暑期招聘网站
  • 兰山做网站专业深圳网站定制开发
  • 做与食品安全有关的网站徐州企业网站设计
  • 番禺网站建设策划江阴市建设局官网站
  • 建设网站模块需要哪些内容石家庄城乡建设厅网站
  • 公司网站后台管理网络公司名字大全三字
  • 广西住房建设厅网站广州seo工作
  • 做分销商城网站的wordpress 知更鸟 网格
  • 推销商务网站的途径有哪些爱网站查询挖掘工具
  • 苏州现代建设公司网站备案的域名做电影网站
  • 长沙seo网站优化公司wordpress5.1下载
  • 七星彩网投网站建设鹤壁公司做网站
  • 多语言企业网站建设费用怎么自己做购物网站
  • 中国网站排名前100线上网站开发相关书籍
  • 网站制作图书网站建设指南
  • 网站备案简单吗优化关键词排名软件
  • 泉山网站开发安徽建设工程造价信息网