1 / 23

Microsoft Entity Framework v1.1 over Oracle Database

Microsoft Entity Framework v1.1 over Oracle Database. Erez Harari Sela Technology Center http://blogs.microsoft.co.il/blogs/erezh/ erezh@sela.co.il. Agenda. Using data in applications Entity Framework WH questions Using EF Designing a model Querying a model Working with the model

beau
Télécharger la présentation

Microsoft Entity Framework v1.1 over Oracle Database

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MicrosoftEntity Framework v1.1overOracle Database Erez Harari Sela Technology Center http://blogs.microsoft.co.il/blogs/erezh/ erezh@sela.co.il

  2. Agenda • Using data in applications • Entity Framework WH questions • Using EF • Designing a model • Querying a model • Working with the model • Data binding support • What else is there • Future of EF

  3. Storing application data • Almost all application stores data • Data is mostly stored in relation DBs • Data stored in tables • Related data is retrievable via views • Data is stored in a normalized manner • Business-Logic sometimes “leak” to the DB

  4. Modeling the data • Applications support a more comprehensive model for data – Object Oriented Model • Class & Object (Entity type & instance) • Properties • Inheritance • Complex data-types

  5. Combining the two • Mapping relational to OO can be sometimes problematic • Write code to load tables into classes • Write code to load Master-Detail relations • Write code to handle Create/Update/Delete (CUD) • Apply appropriate techniques to load & persist inheritance relations • Apply business logic to compute data after loading • We had semi-solutions for some of these issues (Typed Datasets) • We had 3rd party solutions – O/R (Object-Relational) Mapping tools

  6. What Is Entity Framework? • An O/R Mapper • The next layer in Ado.Net • An entity model-driven architecture • The first step in an entity-aware data platform

  7. Why Use Entity Framework? • Why couple your data and your entities? • Why write a DAL every time? • Why learn different types of SQL syntaxes? • Why work hard trying to handle inherited entities?

  8. Where can we find EF? • Part of Visual Studio 2008 SP1 • No special project type is required

  9. How does EF work? DevArttm dotConnect for Oracle

  10. Just a taste DEMO

  11. The Conceptual model • Conceptual model is based on Entity Model • Define entity types • Group inherited types to an entity set • Associate entities (1:1, 1:N, N:M)

  12. The Storage model • Defines different types of relational data sources: • Table • View • Stored Procedure • Native SQL • Define functions for create / update / delete (CUD) • Use existing Stored-Procedures • Native SQL • Import SP that retrieve Entities or Simple types

  13. Conceptual-Storage Mapping • Map entity to storage (table, SP…) • Allow filtering source data • Support mapping single entity to multiple storage sources • Map CUD functions to SP or SQL instead of auto-generated queries • Support concurrency through original values • Support result binding to query output

  14. Building a model DEMO

  15. Querying EF - eSQL • Brand new query language • Allow un-typed references – no compilation check • Can leverage inheritance and collections • Useful for dynamic query building Employees model = new Employees(); var query = model.CreateQuery<Person>( @"Select VALUE p From Employees.Person as p Where p.Age > @age"); query.Parameters.Add(new ObjectParameter("age", 30)); foreach (Person p in query) { Console.WriteLine(p.FirstName + " " + p.LastName ); }

  16. Querying EF – Extension Methods • Query model against EDM • Typed references, using lambda expressions • Compiler verified • Can return anonymous types • A bit hard to read Employees model = new Employees(); int age = 30; var query = model.Person. Where(p => p.Age > age). Select(item => new { FullName = item.FirstName + " " + item.LastName }); foreach (var p in query) { Console.WriteLine(p.FullName); }

  17. Querying EF – LINQ to Entities • LINQ-based syntax • Compiles as set of extension methods • Much more readable than extension methods • Makes building enhanced queries a lot easier Employees model = new Employees(); int age = 30; var query = from p in model.Person where p.Age > age select new { FullName = p.FirstName + " " + p.LastName}; foreach (var p in query) { Console.WriteLine(p.FullName); } 101 LINQ Samples http://tinyurl.com/62j6sb

  18. from p in model.Person where p.Age > age select new {FullName = p.FirstName + " " + p.LastName}; model.Person. Where(p => p.Age > age). Select(p => new {FullName = p.FirstName + " " + p.LastName }); model.CreateQuery<DbDataRecord>( @"Select p.FirstName + "" "" + p.LastName as FullName From Employees.Person as p Where p.Age > @age"); Query tree structure SELECT 1 AS [C1], [Extent1].[FirstName] + ' ' + [Extent1].[LastName] AS [C2] FROM [dbo].[Person] AS [Extent1] WHERE [Extent1].[Age] > @age Querying - behind the scenes

  19. Querying the model DEMO

  20. Transactions and Concurrency • Transactions • All updates executed in .SaveChanges() are wrapped in a transaction • Fully integrated with System.Transactions • Supports explicitly transaction usage • Concurrency • Uses Ado.Net Optimistic concurrency checks (off by default) • Using non-default update & delete queries (Native-SQL, SP…) allows access to current & original data

  21. Working with layers • EF objects can be detached from & attached to a context • EF objects support XML serialization • XmlSerializer • DataContractSerializer • Can be consumed through different service types: • ASP.NET Web Services • WCF Services • Ado.Net Data Services (also support JSON serialization)

  22. Summary • No more need to write DAL code • Conceptual model satisfied using EDM • CRUD operations support with no additional code needed • Can be LINQed and queried in various ways • Conceals, but doesn’t prevent – you can still use your DB code (SQL / SP) if required to

  23. Resources • ADO.NET Entity Framework • Data platform developer centerhttp://msdn.microsoft.com/en-us/data/aa937723.aspx • Ado.Net team Bloghttp://blogs.msdn.com/adonet • Forumhttp://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=533&SiteID=1 • ADO.NET Entity Framework V2 Designhttp://blogs.msdn.com/efdesign • Contact Me • http://blogs.microsoft.co.il/blogs/erezh • erezh@sela.co.il

More Related