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.
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:
- Ouvrez la Package Manager Console dans Visual Studio.
- 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.
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 .

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