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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM