日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Entity Framework Core 1.1 升级通告

發布時間:2023/12/4 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Entity Framework Core 1.1 升级通告 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Entity Framework Core(EF Core)是一個輕量級的,可擴展和實體框架的跨平臺版本。今天,我們宣布 Entity Framewor Core 1.1 正式可用了。

EF Core 和 .NET Core 遵循相同的發行周期。每2個月不斷的改進和每6個月的新功能發布。這是自1.0的第一個功能版本。

請務必閱讀位于這個帖子的末尾的升級到1.1這個章節,有相關升級到1.1版本重要信息。

1.1 版本有什么

1.1版本的重點是解決人們采用EF Core 中遇到的問題。這包括修正了bug,增加了一些的那些尚未在EF Core實現的重要功能。雖然我們已經取得了這方面的一些良好的進展,但是我們也承認EF Core 仍然不會是對大家來說最好的選擇,更多詳細信息可以看這篇?EF Core和EF6.x比較。

Bug修復

在1.1版本有包含超過100個bug的修復。參見?EF Core 1.1 版本說明了解更多詳情。

改進LINQ翻譯

在1.1版本中,我們在提高Linq 對 EF Core 的支持取得了良好的進展。這使得更多的查詢成功執行,有更多的邏輯在數據庫進行執行(而不是在內存中)。

DbSet.Find

DbSet.Find(...)是存在于EF6.x并在 EF Core 中比較常見的一個 API。它可以讓你方便地查詢基于其主鍵值的實體。如果實體已經加載到上下文,則它直接返回而不再次查詢數據庫。

using (var db = new BloggingContext()) { ? ?var blog = db.Blogs.Find(1); }

映射字段

新的流式API?HasField(...)?方法 允許你在屬性中配置一個數據庫不同名字的字段。
這對于只讀屬性是非常有用的,而不是一個 get / set的屬性。有關詳細的指導,請參閱我們的文檔中的Backing Field相關文章。

public class BloggingContext : DbContext{... ? ?protected override void OnModelCreating(ModelBuilder modelBuilder) ? ?{modelBuilder.Entity<Blog>().Property(b => b.Url).HasField("_validatedUrl");} }

顯式加載

顯式加載允許您加載DBContext上下文中跟蹤到的實體的導航屬性里面的內容。欲了解更多信息,請參見我們的文檔中的加載相關數據文章。

using (var db = new BloggingContext()) { ? ?var blog = db.Blogs.Find(1);db.Entry(blog).Collection(b => b.Posts).Load();db.Entry(blog).Reference(b => b.Author).Load(); }

從 EF6.x 增加的 EntityEntry的API

我們已經加入在EF6.x.是可用的但是還沒有添加到 EF Core 中的EntityEntry的相關 API, 這包括?Reload(),?GetModifiedProperties(),?GetDatabaseValues()等。這些API一般通過?DbContext.Entry(object entity)?調用。

彈性連接

彈性連接將會自動重試失敗的數據庫命令。SQL Server提供了一個專門針對SQL Server的執行策略(包括SQL Azure的)。識別到異常類型,可以重試并且為最大重試設置合理的默認值,重試之間的延遲等。更多信息,可以在我們的文檔請參閱彈性連接的文章。

其實一個就是給你的數據庫上下文配置執行策略,在 ASP.NET Core 應用程序中,通常情況下是在?OnConfiguring方法中,或者是在?Startup.cs?里面。

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){optionsBuilder.UseSqlServer( ? ? ? ? ? ?"connection string",options => options.EnableRetryOnFailure()); }

支持 SQL Server 內存優化表

內存優化表是SQL Server 2014+ 的功能。現在,您可以指定一個實體映射到內存優化表。欲了解更多信息,請參閱我們的文檔中的內存優化表文章。

protected override void OnModelCreating(ModelBuilder modelBuilder){modelBuilder.Entity<Blog>().ForSqlServerIsMemoryOptimized(); }

簡化 service 替換

在EF Core 1.0中你可以取代EF使用其內部服務,但這是很復雜的,需要你拿到 EF依賴注入容器的控制權來使用。在1.1中,這個要簡單得多。在配置上下文時候使用ReplaceService(...)?方法就行了。在 ASP.NET Core 應用程序中,這通常是在Startup.cs?文件中的?OnConfiguring(...)?方法中。

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){optionsBuilder.UseSqlServer("connection string");optionsBuilder.ReplaceService<SqlServerTypeMapper, MyCustomSqlServerTypeMapper>(); }

升級到1.1

如果您正在使用的EF團隊提供的連接數據庫的程序包(SQL Server, SQLite, InMemory),那就升級提供的程序包就行了。

PM> Update-Package Microsoft.EntityFrameworkCore.SqlServer

如果您使用的是第三方數據庫提供程序,檢查一下看看他們是否已經發布新版本,它取決于1.1.0更新。如果他們有,那么就升級到新版本。如果沒有, 那么你應該能夠升級他們依賴的EF Core Relational 組件。大部分的新特性數據庫組件提供者在1.1不需要修改。我們已經做了一些測試,以確保數據庫提供商依賴1.0和1.1,但沒有做詳盡的測試。

PM> Update-Package Microsoft.EntityFrameworkCore.Relational

升級工具包

如果您正在使用Tools 工具包,那肯定就要升級了。需要注意的是Tools版本為 1.1.0-preview4 因為Tools還沒有達到其穩定版本。

PM> Update-Package Microsoft.EntityFrameworkCore.Tools -Pre

如果你在使用 ASP.NET Core,使用dotnet ef命令,那么你需要更新 project.json 的Tools部分使用新?Microsoft.EntityFrameworkCore.Tools.DotNet?包取代?Microsoft.EntityFrameworkCore.Tools?1.0 的包。由于.NET Cli,所以對我們來說分離dotnet ef到這個單獨的包已經是必要的了。

json"tools": { ? "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4"},

原文地址:http://www.cnblogs.com/savorboard/p/efcore11-announcing.html


.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Entity Framework Core 1.1 升级通告的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。