.NET Core 2.0 Preview2 发布汇总

前言

关于 ASP.NET Core 2.0 的新功能可以查看 Amazing 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等)


相关文章:

        
 
 
 
        
 
 
 

.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值