Fermer

décembre 23, 2020

Premiers pas avec RadEntityFrameworkCoreDataSource


Découvrez comment tirer parti de notre nouveau composant dans votre développement .NET Core, en créant un exemple d'application avec RadEntityFrameworkDataSource à l'aide de Sqlite.

Si vous connaissez nos composants Telerik UI pour WPF vous avez peut-être déjà utilisé le RadEntityFrameworkDataSource (si vous ne l'avez pas fait, allez-y et vérifiez-le). Il permet une intégration facile entre l'interface utilisateur et les données provenant d'Entity Framework. Avec la version R3 2020 de l'interface utilisateur pour WPF, nous avons introduit un tout nouveau composant qui apporte toutes les mêmes fonctionnalités à Entity Framework Core RadEntityFramework Core DataSource (REFCDS). Dans cet article de blog, nous allons passer par les étapes de création d'un exemple d'application pour présenter le contrôle.

Création du projet et installation des dépendances

Avant de passer à la partie amusante, nous devons nous occuper de plusieurs choses. Commencez par créer une nouvelle application .NET Core 3.1. Après cela, installez les packages NuGet avec lesquels nous allons travailler.

 entityframework-telerik-nugets "title =" entityframework-telerik-nugets "/></p data-recalc-dims=

Définir nos modèles et DbContext

Nous allons implémenter deux modèles qui décriront un blog et un article de blog (étant en quelque sorte" auto-conscient ").

public classe Blog

{

public int BlogId { get ; set ;}

public string Technologie { get ; set ;}

public string Url { get ; set ;}

public List Posts { get ;} = nouvelle Liste (); [19659002] }

public class Post

{ ]

public int PostId { get ; set ; }

public string Title { get ; set ; }

public string Url { get ; set ; }

public int BlogId { get ; set ; }

public Blog Blog { get ; set ; }

}

public class BloggingContext: DbContext [19659002] {

public BloggingContext ()

{

Database.EnsureCreated ();

} [19659002] public DbSet Blogs { get ; set ; }

public DbSet Posts { get ; set ; }

protected override void OnConfiguring (DbContextOptionsBuilder optionsBuilder) [194590000] => optionsBuilder.UseSqlite ( "Data Source = blogging.db" );

} [19659131] A présent, vous avez probablement compris que nous travaillons avec Sqlite. Cependant Entity Framework Core prend en charge d'autres fournisseurs de bases de données et vous pouvez vous sentir libre de les expérimenter.

Création de la base de données

Pour ce tutoriel, nous allons utiliser la première approche code pour générer une base de données. Pour le générer, vous pouvez suivre ces étapes:

  1. Ouvrez la Package Manager Console dans Visual Studio.
  2. Exécutez la commande "Add-Migration Initial" suivie de la commande "Update-Database". Après cela, vous devriez avoir une base de données "blogging.db" créée dans votre répertoire de projet.

 entityframework-package-manager "title =" entityframework-package-manager "/> </p data-recalc-dims=

Création du BloggingContext

Ensuite, nous allons créer le DbContext et nous le remplirons avec des données codées en dur. Je laisserai la partie de l'extraction de certaines données d'un (des) blog (s) pour les devoirs;)

public partial class MainWindow : Window

{

public MainWindow ()

{

StyleManager.ApplicationTheme = nouveau FluentTheme ();

InitializeComponent ();

var bloggingContext = new [1 9659010] BloggingContext ();

this .AddData (bloggingContext);

this .EFCDS.DbContext = bloggingContext;

}

private void AddData (contexte BloggingContext)

{

context.Posts.Add (post);

context.Posts.Add (post);

context.Posts.Add (post);

context.Blogs.Add (dotNetBlog);

co ntext.Posts.Add (post);

context.Posts.Add (post);

[19659177] context.Posts.Add (post);

context.Blogs.Add (dotNetBlog);

context.SaveChanges ();

}

}

Câblage de la vue

Il ne reste plus qu'à configurer le XAML pour afficher nos données. Nous utiliserons le RadGridView et définirons son ItemsSource sur la propriété DataView de RadEntityFrameworkCoreDataSource.

xmlns: sys = "clr-namespace: System; assembly = System.Runtime" >

[19659102] < Grid.RowDefinitions >

< RowDefinition />

< RowDefinition Height = "Auto" />

< RowDefinition Height = "Auto" />

</ Grid.RowDefinitions >

< telerik: RadEntityFrameworkCoreDataSource x: Name = "EFCDS" QueryName 19659017] = "Blogs" >

< telerik: RadEntityFrameworkCoreDataSource.RelatedObjects >

< sys] chaîne sys] Messages </ sys: String >

</ telerik: RadEntityFrameworkCoreDataSource.RelatedObjects > [1945900]

</ telerik: RadEntityFrameworkCoreDataSource >

< telerik: RadalGrid GroupRenderMode = "Flat" ItemsSource = "{Binding DataView, ElementName = EFCDS}" AutoGenerateColumns = "False" [19659017]>

< telerik: RadGridView.Columns >

< telerik: GridViewToggleRowDetailsColumn />

< telerik: GridViewBataColumn [196592Member] 19659017] = "{Binding BlogId}" />

< telerik: GridViewHyperlinkColumn Header = "Technology" DataMemberBinding = "{Binding Url}" ContentBinding = "{Binding Technology}" />

</ telerik: RadGridView.Columns >

< telerik : RadGridView.RowDetailsTemplate >

< DataTemplate >

< telerik: RadGridView GroupRenderMode = "Flat" ItemsSource = "{Binding Posts}" [19659225] AutoGenerateColumns = "False" >

< telerik: RadGridView.Columns >

< telerik: GridViewDataColumn DataMemberBinding = "{Binding PostId}" />

< telerik: GridViewHyperlinkColumn Header = "Link" DataMemberBinding = "{Binding Url} " ContentBinding = " {Titre contraignant} " />

</ [19659016] telerik: RadGridView.Columns >

</ telerik: RadGridView >

</ DataTemplate >

</ telerik: RadGridView.RowDetailsTemplate >

</ telerik: RadGridView >

</ [19659016] Grille >

Et voilà! La vue résultante dans le thème Fluent .

 EFCDSResult "title =" EFCDSResult "/></p data-recalc-dims=

Partagez vos commentaires

Nous aimerions avoir de vos nouvelles. Visitez notre portail de commentaires WPF et n'hésitez pas à nous envoyer une nouvelle demande de fonctionnalité .

N'attendez pas et essayez la dernière interface utilisateur Telerik pour WPF .

Au cas où vous l'auriez manqué, voici quelques-unes des mises à jour de la version R3 2020 SP ].





Source link