zoukankan      html  css  js  c++  java
  • .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 Customers
    WHERE 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等)

    本文地址:http://www.cnblogs.com/savorboard/p/dotnetcore2-feature.html
    作者博客:Savorboard
    欢迎转载,请在明显位置给出出处及链接

  • 相关阅读:
    Java使用MyEclipse2017时的一些小细节
    Windows设置双ip访问虚拟机方法
    Python-函数的参数
    Python dict.set
    FTP错误代码列表
    使用批处理文件在FTP服务器 上传下载文件(转载)
    FreeRTOS学习笔记7-FreeRTOS 队列相关
    FreeRTOS学习笔记6-调度器开启和任务相关函数
    从github hexo 跑来 博客园
    Nodejs实战 —— 测试 Node 程序
  • 原文地址:https://www.cnblogs.com/savorboard/p/dotnetcore2-feature.html
Copyright © 2011-2022 走看看