.NET Core 2.0 Preview2的詳細介紹

來源:互聯網
上載者:User
這篇文章主要為大家詳細介紹了.NET Core 2.0 Preview2 發布匯總的相關內容,具有一定的參考價值,感興趣的小夥伴們可以參考一下

前言

關於 ASP.NET Core 2.0 的新功能可以查看我的這篇部落格。 這篇文章是 Priview2中的一些改進。

.NET Core 2.0 - Preview2

Azure 的改進
Docker 鏡像轉移到了 Debian Stretch
修複並支援 macOS High Sierra
品質和效能的改進
dotnet restore 將在 dotnet run,publish,build 的時候被隱式調用
.NET Standard 庫可以引用 .NET Framework庫了
.NET Standard NuGet 包 nuspec 不再需要添加對於NETStandard.Library依賴關係了

ASP.NET Core 2.0 - Preview2

更新了 Visual Studio 的模板,多了SPA項目的模板。 包括(Angular, React.js, React.js and Redux)等。


添加了在 Visual Studio 2017 中建立 ASP.NET Core 項目使用 .NET Framework架構的模板。


Kestrel 添加了一些配置選項,包括(MaxConcurrentConnections,MaxRequestBodySize,RequestBodyMinimumDataRate)等。

Razor 支援 C# 7.1。 此項配置可以在csproj中指定<LangVersion>latest</ LangVersion>開啟。
對於MVC Action中FileStreamResult,FileContentResult 的Http頭增加了支援的範圍。 現在可以添加 ETag, LastUpdate等。

新增了兩個關於Razor Page的過濾器(IPageFilter,IAsyncPageFilter)。
關於 Priview 1中的 Identity 相關的服務還有配置HTTPS的被割掉了,他們還需要時間進行打磨,等待以後發布。

Entity Framework Core 2.0 - Preview2

新的 NuGet 包以及工具包(Microsoft.EntityFrameworkCore.Tools.DotNet)
FromSql和ExecuteSqlCommand中的字串插值,他們產生的SQL將會自動參數化。

var city = "London";var contactTitle = "Sales Representative";using (var context = CreateContext()){ context.Customers .FromSql($@" SELECT * FROM Customers WHERE City = {city} AND ContactTitle = {contactTitle}") .ToArray();}

產生的SQL:

@p0='London' (Size = 4000)@p1='Sales Representative' (Size = 4000)SELECT *FROM CustomersWHERE City = @p0 AND ContactTitle = @p1

實體類型自動分割表(完善Priview1中的功能),下面將只會建立一個表。

modelBuilder.Entity<Order>().OwnsOne( p => p.OrderDetails, cb => { cb.OwnsOne(c => c.BillingAddress); cb.OwnsOne(c => c.ShippingAddress); });public class Order{ public int Id { get; set; } public OrderDetails OrderDetails { get; set; }}public class OrderDetails{ public Address BillingAddress { get; set; } public Address ShippingAddress { get; set; }}public class Address{ public string Street { get; set; } public string City { get; set; }}

資料庫函數映射,你可以在代碼中使用資料庫中定義的函數了,注意傳回值只能是單個的(scalar)。

public class BloggingContext : DbContext{ [DbFunction] // 添加這個標記,靜態方法 public static int PostReadCount(int blogId) { throw new Exception(); }}

將會調用資料庫中定義的PostReadCount函數,函數必須自己手動建立,EF不會自動產生。

var query = from p in context.Posts where BloggingContext.PostReadCount(p.Id) > 5 select p;

其他的改進(相容性,過時api等)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.