* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download IT Boxing Championship
Data center wikipedia , lookup
Versant Object Database wikipedia , lookup
Data analysis wikipedia , lookup
Clusterpoint wikipedia , lookup
Information privacy law wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Forecasting wikipedia , lookup
3D optical data storage wikipedia , lookup
Operational transformation wikipedia , lookup
Business intelligence wikipedia , lookup
Relational model wikipedia , lookup
ADO.NET Entity Framework Deyan Varchev General Manager Avaxo Ltd. What Is It? Entity Framework LINQ VS 2008 .NET 3.5 The ADO.NET Entity Framework is part of Microsoft’s next generation of .NET technologies. It is intended to make it easier and more effective for objectoriented applications to work with data. THE PROBLEM BEING ADDRESSED Inherit differences between data expression in a relational database and the same data expressed in an object-oriented application. The Logical Data Model Tables Views Stored Procedures Foreign Key Relationships • Almost any business application today has to speak to a relational database. • This involves the usual suspects of tables with foreign keys, a smattering of views, and generally a gob of stored procedures. The Object-Oriented Domain Model Objects Behavior Properties Inheritance Complex Types • Applications themselves are written in a completely different world. • The same data that lives in the relational database is represented entirely differently in the application. The Result Logical Data Model Lots of Custom Code Application Domain The result of this “impedance mismatch” is that developers devote a lot of time and energy writing code to translate between how the database likes to see data and how the application likes to see data. Other Ways to Address The Same Problem • Hibernate (Java) • Enterprise Objects Framework (Mac OS) • NHibernate (.NET) • LINQ to SQL (Visual Studio 2008) • And many, many, more … The ADO.NET Entity Framework Logical Data Model Entity Data Model Less Custom Code Application Domain • The ADO.NET Entity Framework seeks to remedy the problem by providing a layer of abstraction between the logical data model and the application domain. Why the Entity Model? Logical Data Model • Tables • Rows • Foreign Keys Entity Data Model • Entity Sets • Entities • Relationships Closer to the application problem space Better suited for object oriented programming Supports Inheritance Supports complex types Relationships are more meaningful to the application THE “STUFF” IN ADO.NET ENTITY FRAMEWORK The tools and technology that developers will interact with when using the ADO.NET Entity Framework Entity Data Model • A gob of XML that defines • Logical Data Tables, Views, Foreign Keys • Entity Objects that Map to the Logical Data • The Mapping Between the Two Entity Data Model Designer • A Visual Studio Designer that protects developers from the XML that is the EDM ObjectContext • A code-generated data context created from the Entity Data Model • Responsible for managing communication between the conceptual data model and the logical data model Entities • Code-generated class definitions for objects defined in the EDM. GETTING THE DATA OUT How do we get data out of the fancy Entity Data Model? eSQL (Entity SQL) A brand new SQL language to learn Leverages the rich, object-oriented Entity Data Model Inheritance Collections Complex Types Literal Strings – No Compiler Checking Questionable value in embedded SQL in code Extensions Methods and String Predicates • Queries the object model created against the EDM • Still string-based. No compiler checking • An ugly mix of code and eSQL statements LINQ to Entities • Full compiler checking. No wondering if the query is valid. • A fun new SQL-Like syntax • More OO-ish WHAT CAN YOU DO? The power of the Entity Data Model contrasted to a logical data model of tables and stored procedures. Combine Multiple Logical Tables into One Entity Database Tables Entity Data Model Implement Inheritance Database Tables Entity Data Model Other Fun Stuff • Implement Complex Types (e.g. Address) • Consume Conceptual Model with Reporting Services and other BI Tools • Create an EDM that talks to stored procedures • Use transactions, manage concurrency, cache execution plans Manipulate Data By Manipulating Objects Database Result Desired EDM Object Manipulation INSERT ROW Create new object Add object to EDM Context Update Context DELETE ROW Get instance of object from EDM Context Ask Context to remove the object Update Context UPDATE ROW Get instance of object from EDM Context Update object Update Context Lecture Topic Questions?