The document discusses the history and future of object-relational mapping (ORM) technologies for .NET applications. It provides an overview of Microsoft's ORM strategies over the years, including LINQ to SQL and the ADO.NET Entity Framework. The Entity Framework is now Microsoft's strategic ORM and supports many databases. The document outlines upcoming improvements to the Entity Framework in areas like modeling, queries, and consumption.
Entity Framework, Code First, Database First, TPH, TPT, TPC. Table Per Type, Table Per Hierarchy, Table Per Concrete Class, EF Concurrency, EF Relationship, Code First Conventions
Entity Framework, Code First, Database First, TPH, TPT, TPC. Table Per Type, Table Per Hierarchy, Table Per Concrete Class, EF Concurrency, EF Relationship, Code First Conventions
Introduction to JPA and Hibernate including examplesecosio GmbH
In this talk, held as part of the Web Engineering lecture series at Vienna University of Technology, we introduce the main concepts of Java Persistence API (JPA) and Hibernate.
The first part of the presentation introduces the main principles of JDBC and outlines the major drawbacks of JDBC-based implementations. We then further outline the fundamental principles behind the concept of object relation mapping (ORM) and finally introduce JPA and Hibernate.
The lecture is accompanied by practical examples, which are available on GitHub.
A hibernate tutorial for beginners. It describe the hibernate concepts in a lucid manner and and test project(User application with database) to get hands on over the same.
TUTORIAL-INTRODUCTION TO SPRING FOR BEGINNERS
EXPLANATION TO-Java Framework,Advantages of using SPRING,Difference between Hibernate and Spring.Spring architecture,Spring IoC Containters,Bean scope & Method Injection,Spring Inheritance.
Hibernate framework simplifies the development of java application to interact with the database. Hibernate is an open source, lightweight, ORM (Object Relational Mapping) tool.
An ORM tool simplifies the data creation, data manipulation and data access. It is a programming technique that maps the object to the data stored in the database.
Handling an SQLite database in Android implies challenges like a lot of boilerplate code, database operations on the main thread, queries checked at runtime and especially unmaintainable code. At Google I/O 2017, the Android team launched Room, an SQLite object mapper, that provides a set of components and features that will solve all these challenges and will help us, the developers, to have a better experience when using a database in our app.
The presentation will include examples about how to use the main components from Room (@Entity, @Dao, @Database), how to handle the relations between the entities, how to use the (observable) queries and not run database operations on the main thread. Also, we will discover more details about the migration support, compile time query verification and what’s happening behind the scenes.
Introduction to JPA and Hibernate including examplesecosio GmbH
In this talk, held as part of the Web Engineering lecture series at Vienna University of Technology, we introduce the main concepts of Java Persistence API (JPA) and Hibernate.
The first part of the presentation introduces the main principles of JDBC and outlines the major drawbacks of JDBC-based implementations. We then further outline the fundamental principles behind the concept of object relation mapping (ORM) and finally introduce JPA and Hibernate.
The lecture is accompanied by practical examples, which are available on GitHub.
A hibernate tutorial for beginners. It describe the hibernate concepts in a lucid manner and and test project(User application with database) to get hands on over the same.
TUTORIAL-INTRODUCTION TO SPRING FOR BEGINNERS
EXPLANATION TO-Java Framework,Advantages of using SPRING,Difference between Hibernate and Spring.Spring architecture,Spring IoC Containters,Bean scope & Method Injection,Spring Inheritance.
Hibernate framework simplifies the development of java application to interact with the database. Hibernate is an open source, lightweight, ORM (Object Relational Mapping) tool.
An ORM tool simplifies the data creation, data manipulation and data access. It is a programming technique that maps the object to the data stored in the database.
Handling an SQLite database in Android implies challenges like a lot of boilerplate code, database operations on the main thread, queries checked at runtime and especially unmaintainable code. At Google I/O 2017, the Android team launched Room, an SQLite object mapper, that provides a set of components and features that will solve all these challenges and will help us, the developers, to have a better experience when using a database in our app.
The presentation will include examples about how to use the main components from Room (@Entity, @Dao, @Database), how to handle the relations between the entities, how to use the (observable) queries and not run database operations on the main thread. Also, we will discover more details about the migration support, compile time query verification and what’s happening behind the scenes.
Building nTier Applications with Entity Framework Services (Part 1)David McCarter
Learn how to build real world nTier applications with the new Entity Framework and related services. With this new technology built into .NET, you can easily wrap an object model around your database and have all the data access automatically generated or use your own stored procedures and views. The session will demonstrate how to create and consume these new technologies from the ground up and focus on database modeling including views and stored procedures along with coding against the model via LINQ. Dynamic data website will also be demonstrated.
Building nTier Applications with Entity Framework Services (Part 1)David McCarter
Learn how to build real world nTier applications with the new Entity Framework and related services. With this new technology built into .NET, you can easily wrap an object model around your database and have all the data access automatically generated or use your own stored procedures and views. The session will demonstrate how to create and consume these new technologies from the ground up and focus on database modeling including views and stored procedures along with coding against the model via LINQ. Dynamic data website will also be demonstrated. Lots of code! Make sure to attend Part 2.
Building N Tier Applications With Entity Framework Services 2010David McCarter
Learn how to build real world nTier applications with the new Entity Framework and related services introduced in .NET 3.5 SP1. With this new technology built into .NET, you can easily wrap an object model around your database and have all the data access automatically generated or use your own stored procedures and views. Then learn how to easily and securely expose your object model using WCF with just a few line of code using ADO.NET Data Services. The session will demonstrate how to create and consume these new technologies from the ground up. Lots of code!
Windows Azure Platform: Articles from the Trenches, Volume OneEric Nelson
Developers have been exploring the possibilities opened up by the Windows Azure Platform for Cloud Computing. This book pulls together great articles from many of those developers who have been active with the Windows Azure Platform to hopefully help others become successful. There are twenty articles in this first volume covering everything from getting started to implementing best practices for elastic applications.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Epistemic Interaction - tuning interfaces to provide information for AI support
Entity Framework v1 and v2
1. Eric Nelson
Developer & Platform Group
Microsoft Ltd
eric.nelson@microsoft.com
http://geekswithblogs.net/IUpdateable
http://twitter.com/ericnel
2. ORMs
Swift look at history and future of ORM on
Windows
Entity Framework – with demos
Entity Data Model
Entity Services
Object Services
Entity Framework v2 – with no demos
Overview of POCO, Model First etc
3.
4. Accessing data in 1990
• ODBC, embedded SQL
Accessing data in 2000
• ADO, Stored Procedures
Accessing data in 2005
• ADO.NET, Datasets, DataReaders
Accessing data in 2010
• ORM baby!
5. What is it?
an Abstraction
technique for working with relational tables as if they
were objects in memory
Intention is to hide away the complexity of the
underlying tables and give a uniform way of working
with data
Why use it?
Developer productivity
Retain database independence
Note:
Using an ORM does not mean you must use the ORM!
6. Many ORMs out there
LLBLGen Pro http://www.llblgen.com/
Nhibernate http://www.hibernate.org/343.html
EntitySpaces http://www.entityspaces.net/Portal/Default.aspx
Open Access http://www.telerik.com/products/orm.aspx
DevForce http://www.ideablade.com/
XPO http://www.devexpress.com/Products/NET/ORM/
Lightspeed
http://www.mindscape.co.nz/products/LightSpeed/default.aspx
Plus many, many more
No clear “winner” = relatively little
adoption of ORM
Developers waiting on Microsoft
Of 31 .NET ORMs in 2003, 9 lasted to 2008
7. Typed Datasets (cough) – shipped
ObjectSpaces “v1” – never shipped
ObjectSpaces “v2” – never shipped
Microsoft Business Framework – never shipped
WinFS – never shipped
LINQ to SQL - shipped November 2007
Visual Studio 2008 & .NET Framework 3.5
LINQ to Entities - shipped August 2008
Visual Studio 2008 SP1 & .NET Framework 3.5 SP1
Note: LINQ to Entities is the most visible part of the
ADO.NET Entity Framework
8. Entity Framework and LINQ to Entities is our strategic
technology
Entity Framework v2 in VS2010 and .NET Framework 4.0
Best of LINQ to SQL moves into LINQ to Entities
Microsoft is using it
Data Services - shipping
Reporting Services
Microsoft “M”
Partners supporting it
Database Vendors – IBM,OpenLink, DataDirect, Devart etc
ORM vendors supporting it
DevForce now target Entity Framework, replacing their own
LLBLGen v3 will target Entity Framework as well as their own
Devart Entity Developer
It is not just about ORM
10. LINQ to SQL LINQ to Entities
Database Support SQL Server SQL Server, DB2,
Oracle, Sybase,
MySQL ...
Object Relational Simple Complex
Mapping
Capabilities
Not strategic
Status Strategic
Often
Annoying Rarely
11. Entity Framework is not just about ORM
Entity Framework v1 is being adopted
Typically on applications expected to “live” a long time
Entity Framework is only .NET 3.5 SP1 and above
Entity Framework is probably not the best choice for
a “short lived” SQL Server applications
Entity Framework v1 has “warts”
Designer
It is annoying – buggy, clunky
Exposes subset of the functionality
Does not support model first
N-tier story
Stored Procedure Support
Foreign Keys
PoCo
Guids
SQL 2008 New Types
12. “EF is still cutting
development time
“the entity framework
in half. Ya gotta
can kiss my damn
love it.”
ass - this shit is
ridiculous”
13.
14. Tools and services to create an Entity
Data Model (EDM)
Tools and services for consuming an
Entity Data Model
15. Entity Data Model
Application model
Mapped to a persistence
store
Conceptual
Comprised of three
layers:
Conceptual (CSDL)
Mapping (MSL) Mapping
Storage (SSDL)
Database agnostic
Comprised of:
Storage
Entities
Associations
Functions
19. Queries materialized as Objects
ObjectContext
ObjectQuery<T>
Built on top of Entity Client
Two query options:
Entity SQL
LINQ
Runtime services:
Unit of work
Identity tracking
Eager/explicit loading
21. ORM is an abstraction layer over data
• Productivity
• Database Independence
Microsoft has two ORMs
• LINQ to SQL – only SQL Server
• Entity Framework (includes LINQ to Entities) – many RDBMS, strategic
ADO.NET Entity Framework includes all the other bits
• EDM, Linq to Entities, ESQL, Object Services, Entity Services
• Part of .NET Framework 3.5 SP1
Entity Data Model – mapping from conceptual to store
• CSDL = Conceptual Schema Definition Language
• SSDL = Store Schema Definition Language
• MSDL = Mapping Schema Definition Language
Two query languages
• ESQL = Entity SQL. Read only query language similar to SQL
• LINQ to Entities = Language Integrated Query to the EDM
22.
23. For Everyone
Pluralization
Foreign Keys
Stored Procedures
Self tracking Entities
For the Model Centric Developer
Model First
Complex Types
Model Defined Functions
For the Control Freak
Code Generation
For the Agilist
Persistence Ignorance, Lazy Loading, Code Only
+ “Other stuff”
Warning – not final. Expect changes!
24. Pluralization
Used in Database First and Model First
Implementation
Public abstract PluralizationService
Default implementation is English Only
Default rules:
EntityTypes / ComplexTypes are singularized
EntitySets are pluralized
Navigation Properties based on cardinality
25. Foreign Keys
Independent Association – v1
Product p = new Product
{
ID = 1,
Name = quot;Bovrilquot;,
Category = context.Categories
.Single(c => c.Name == quot;Foodquot;)
};
context.SaveChanges();
FK Association – v2
Product p = new Product
{
ID = 1,
Name = quot;Bovrilquot;,
CategoryID = 13
};
context.Products.AddObject(p);
context.SaveChanges();
26. Stored Procedures
Stored Procedures as functions
Mapping support for stored procedure result
Complex type as return type
Scalar and void return type
Entity CUD using Stored Procedures
No need to have SPs for all CUD
27. Entities do their own change tracking
regardless of which tier changes are made on
Somewhere between DTOs and DataSets
28. Model First
Start with a blank model
Add entities/relationships (CSDL)
Click “Create Database from
Model”
Infer Storage Model (SSDL)
Infer Mapping (MSL)
Infer DDL
Deploy DDL
Modify and re-apply. Two way.
But - deletes your data!!!
29. Complex Types
Map a new type to many types
Adds designer support
30. Model Level using ESQL
<Function Name=“CustomerFullName” ReturnType=“String”>
<Parameter Name=“customer” Type=“MyModel.customer”>
<DefiningExpression>
customer.FirstName + ‘ ‘ + customer.LastName
</DefiningExpression>
</Function>
Enables from c in ctx.Customers select c.FullName()
CLR Level
[EdmFunction(quot;MyModelquot;, quot;CustomerFullNamequot;)]
public static string FullName(this customer c)
{
return String.Format(quot;{0} {1}quot;, c.FirstName, c.LastName);
}
Enables Console.WriteLine(c.FullName());
31. In V1 we had EntityClassGenerator which
could be configured using events
Hard (it used CodeDom)
Inflexible (not much control)
In V2 we will have
TemplatedEntityClassGenerator and will ship
default T4 templates
Customization via Tools
Uses Workflow Foundation
32. Persistence Ignorance
Support for Plain Old CLR Objects
No requirement to have specific interface, base
class
Lazy Loading
Can not do order.order_details.Load()
But
Can do lazy load
Context.deferredloading=true
33. Code Only
No XML files, no model!
Convention to config
E.g. Convention: xxxID to a primary
key, schema=dbo
E.g. Config: On map to schema sys and class
property to table column
[TableMapping(Schema=“sys”,TableName=“MyDBTable”]
[ColumnMapping(PropertyName=“MyClassProp1”, Column
Name=“table_column1”)]
[Key(PropertyName=“MyClassProp1”)]
public objectset<MyThing> MyThings...
34. Improved N-Tier API
More LINQ query operators
More SQL generation optimizations
Inline functions in ESQL
Readonly mapping
35. 1990 to • Data Access technology remained
reasonably static
2008 - • Procedural, API access
• Surfaced the database schema
Tables • No clear ORM choice
• LINQ – excellent addition to the .NET
2009 – languages
• Entity Framework and the EDM – strategic
Objects investment
• Productivity leap
36. http://blogs.msdn.com/efdesign
Entity Framework v2
http://geekswithblogs.net/IUpdateable
Slides
Sessions Thursday on
SQL Data Services 9:30am
Windows Azure 2:00pm
38. Driven by Reporting Services team + others
Query Tree Writing with no objects...
LINQ query without objects...
DbExpression expression=ctx.EntitySet(quot;Ordersquot;).Scan().Where(...);
DbDataReader reader = ctx.ExecuteQuery(expression);
Or
from c in ctx.EntitySet(“Orders”).Scan()
Select c.Property(“ShipCity”)
Readonly mapping
<EntityContainerMapping CdmEntityContainer=quot;CContainerquot;
StorageEntityContainer=quot;SContainerquot; GenerateUpdateViews=quot;falsequot; >