• Net Core2.0 升级到.Net Core 2.1


    1. 安装新 .Net Core SDK 2.1

    2. 升级VS.net 到15.7, 这个版本极其不好用,IIS打中文会自动退出,但现在也没办法降级了.只能等微软打补丁.

    3. 对于面向 ASP.NET Core 2.1 及更高版本的应用程序,建议使用 Microsoft.AspNetCore.App 而不是Microsoft.AspNetCore.All 

    https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/metapackage?view=aspnetcore-2.1

     4. 多了warning和sql injection detection

    @Html.PartialAsync("_Header")

     5. NLog.config, 重新设置一下 copy to bin :always

    升级到.Net Core 2.1, 我在Mac上的Mysql连接不了,因为现在只支持.Net Core 2.0, 没办法只能降回2.0,   现在已经支持2.1了. 而且2.1是长期支持的版本. 还是要升级上去的.

    但是project文件改tareget framework没有用,我只能找回几天前的project文件替换.

    6. EF Core 2.1 支持 Lazy Loading, Model里定义为虚 virtual属性的字段,可以延迟加载

    Install-Package Microsoft.EntityFrameworkCore.Proxies -Version 2.1.1

    Startup.cs的configureSerice里增加

    services.AddDbContext<SchoolContext>(options =>
    options.UseLazyLoadingProxies().UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); //如果未在Context中添加UseLazyLoadingProxies,导航属性不会添加

    在实体框架Entity Framework 6及之前的版本中,数据模型的导航属性只要加上virtual关键字,在你访问这个属性的时候(不管是对象还是对象集合),EF的内部机制就会自动加载相关数据。

    这一特性就称之为Lazy Loading,其为开发带来极大方便(尤其需要快速开发的时候),因为不用操心去查询关联数据。当然缺点也很明显,就是这种查询方式其实是低效的,且在某些情况下使用不当也会造成性能问题。

    当然除了使用Lazy Loading外,你还可以使用Include来预先加载关联数据(执行一次查询返回多个数据结果),此特性称之为Eagerly Loading

    在EF6.x和EF Core 中,Include的使用基本一致,不过在加载多级数据的时候就有所不同了。EF6.x的方式比较简单直接,详细见:https://msdn.microsoft.com/zh-cn/data/jj574232#eagerLevels

    在EF Core 中就需要用到新的ThenInclude方法。详细用法见下面的示例代码:

    var get = await db2.Sites
        .Include(o => o.ArticleColumns).ThenInclude(o => o.Categories)
        .SingleOrDefaultAsync(o => o.Id == site.Id);

    参考: http://www.cnblogs.com/dudu/p/9009295.html

  • 相关阅读:
    第一章Python 数据模型
    Numpy 之 where理解
    探析熟悉而又困惑的参数:argc && argv
    python读书笔记
    经典进程的同步问题之——读者写者
    经典进程的同步问题之——哲学家进餐
    冰多多团队博客目录
    团队事后分析
    冰多多团队Gamma阶段发布说明
    gamma测试报告
  • 原文地址:https://www.cnblogs.com/zitjubiz/p/9146015.html
Copyright © 2020-2023  润新知