Presentation is loading. Please wait.

Presentation is loading. Please wait.

Linq-to-Entities, Data Persisters, Master Datail Doncho Minkov Telerik School Academy Technical Trainer

Similar presentations


Presentation on theme: "Linq-to-Entities, Data Persisters, Master Datail Doncho Minkov Telerik School Academy Technical Trainer"— Presentation transcript:

1 Linq-to-Entities, Data Persisters, Master Datail Doncho Minkov Telerik School Academy http://schoolacademy.telerik.com Technical Trainer http://www.minkov.it

2  Data Access Layer  Linq-to-Entities  Linq-to-XML  Accessing the Data Layer  DataContext  Master Detail  Data Persister  Paging  WPF and Databases

3

4  The Data Access Layer is a essential  Used for access to the database  Class Library with single EntityModel class  This way we can use the same DAL with many applications

5 Live Demo

6

7  When adding a reference to the DAL project  We can instantiate an entity model in the XAML  And set it for DataContext <Window… xmlns:datalayer=" xmlns:datalayer=" clr-namespace:NorthwindDataLayer;assembly= clr-namespace:NorthwindDataLayer;assembly= NorthwindDataLayer"> NorthwindDataLayer">

8  After instantiating the EntityModel we can simply bind some of the entities to a ItemCollection  ListBox, ListView, TreeView, etc.  In MVVM it is not possible to access the DAL directly  Done through the ViewModel  In MVVM we need a DataPersister object <TreeView x:Name="TreeViewCategories" ItemsSource="{Binding Categories}"> ItemsSource="{Binding Categories}">

9 Live Demo

10

11  What is Master Detail?  When selecting a Category  Show category info  Show products in this category <ListView Name="ListViewFamilies" ItemsSource="{Binding}" DisplayMemberPath="FamilyName"/> DisplayMemberPath="FamilyName"/> <ListView DisplayMemberPath="Name" ItemsSource="{Binding ElementName=ListViewFamilies, ItemsSource="{Binding ElementName=ListViewFamilies, Path=SelectedItem}"/> Path=SelectedItem}"/>

12  Consider we have the property Categories in the ViewModel  Somehow it gets data from the Model  Since Categories is a IEnumerable we can get its ICollectionView  Now we got the CurrentItem  Can make property Products that returns the products of the CurrentItem

13 Live Demo

14 The way to collect information

15  The Data Persister is the object that gives data to the Model  Sometimes it is merged with the Model  It could be an EntityDataModel  It could be a Linq-to-XML object  It could just an object we created  How the Data Persister helps?  Easier for mocking (unit testing)  Better reusability

16  The DataPersister is the class that makes the connection with the Data (RDB, XML or object)  Responsible for the CRUD  May have validation  With this object the Model is pretty clean  Almost no programming logic  Loose coupling

17 Live Demo

18 What is paging and why we need it?

19  A memory-management scheme  A computer can store and retrieve data from secondary storage for use in main memory  With paging the application retrieves data from secondary storage in same-size blocks called pages  Why use paging?  Imagine a Database with over a million records  Store them in the dynamic memory at once?  Or take them by pieces with 100 records?

20  TODO

21 Live Demo

22 With MVVM

23  Consider the usual case  You have categories with products in a Database  CRUD operations should be implemented  You have the following:  When selecting the DataContext of the Grid  You get a Person object </Grid>

24 Live Demo

25 Questions?

26 1. Create a database holding continents, countries and town. Countries have name, language, population and continent. Towns have name, population and country. Implement a WPF application that shows the continents in a ComboBox, countries in a ListView and the towns in a ListView and allows master-detail navigation. Use Entity Framework. Use paging and sorting for the long lists. 2. Implement add / edit / delete for the continents, countries, towns and languages. Handle the possible errors accordingly. Implement validation logic. 26

27 3. Add a flag for each country which should be a PNG image, stored in the database, displayed along with the country data. Implement "change flag" functionality by uploading a PNG image. 27


Download ppt "Linq-to-Entities, Data Persisters, Master Datail Doncho Minkov Telerik School Academy Technical Trainer"

Similar presentations


Ads by Google