Maison >développement back-end >Tutoriel C#.Net >Introduction détaillée à .NET Core 2.0 Preview2

Introduction détaillée à .NET Core 2.0 Preview2

零下一度
零下一度original
2018-05-15 15:27:342123parcourir

Cet article présente principalement en détail le contenu pertinent du résumé de la version .NET Core 2.0 Preview2. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer

Avant-propos

<.>Pour plus d'informations sur les nouvelles fonctionnalités de

ASP.NET Core 2.0, vous pouvez consulter mon blog. Cet article concerne certaines améliorations de Privilège2.

.NET Core 2.0 - Aperçu2

Améliorations d'Azure

Images Docker déplacées vers Debian Stretch
Corrections et prise en charge de macOS High Sierra
Qualité et Amélioration des performances

restauration dotnet sera appelée implicitement lors de l'exécution, de la publication et de la construction de dotnetLa bibliothèque .NET Standard peut faire référence à la bibliothèque .NET Framework
.NET Standard NuGet Le package nuspec n'a plus besoin d'ajouter de dépendances pour
NETStandard.Library

ASP.NET Core 2.0 - Preview2

Mise à jour des modèles de Visual Studio et ajout de modèles pour les projets SPA. Y compris (Angular, React.js, React.js et Redux), etc.


Ajout d'un modèle pour créer un nouveau projet ASP.NET Core dans Visual Studio 2017 à l'aide du framework .NET Framework.


Kestrel ajoute quelques options de configuration, notamment (MaxCon

currentConnections, MaxRequestBodySize, RequestBodyMinimumDataRate), etc.

Razor prend en charge C# 7.1. Cette configuration peut être activée en spécifiant

0f3802d193a0548f1e8805d4090d60c7latesta1ce00407b3b68bab908063fc8f7cbae dans csproj. Pour FileStreamResult dans MVC Action, l'en-tête Http de FileContentResult augmente la plage prise en charge. ETag, LastUpdate, etc. peuvent maintenant être ajoutés.

Ajout de deux nouveaux

filtres (IPageFilter, IAsyncPageFilter) pour Razor Page. Concernant les services liés à l'identité dans la Preview 1 et à la configuration du HTTPS, ils ont été coupés. Ils ont encore besoin de temps pour peaufiner et attendre la prochaine version.

Entity Framework Core 2.0 - Preview2

Nouveau package et boîte à outils NuGet (Microsoft.EntityFrameworkCore.Tools.DotNet)


FromSql et ExecuteSqlCommand >String interpolation, le SQL qu'ils génèrent sera automatiquement paramétré.

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 généré :

@p0=&#39;London&#39; (Size = 4000)
@p1=&#39;Sales Representative&#39; (Size = 4000)

SELECT *
FROM Customers
WHERE City = @p0
 AND ContactTitle = @p1
Le type d'entité divise automatiquement la table (améliorant la fonction dans Priview1), une seule table sera créée en dessous.

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; }
}
Mappage des fonctions de base de données, vous pouvez utiliser les fonctions définies dans la base de données dans votre code. Notez que la valeur de retour ne peut être qu'une seule (scalaire).

public class BloggingContext : DbContext
{
 [DbFunction] // 添加这个标记,静态方法
 public static int PostReadCount(int blogId)
 {
 throw new Exception();
 }
}
appellera la fonction PostReadCount définie dans la base de données. La fonction doit être créée manuellement et EF ne la générera pas automatiquement.

var query =
 from p in context.Posts
 where BloggingContext.PostReadCount(p.Id) > 5
 select p;
Autres améliorations (compatibilité, API obsolète, etc.)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn