EF Code First with SQL CE and LocalDb

Download Report

Transcript EF Code First with SQL CE and LocalDb

Steve Maier
@YsFred4, @ThoughtsPrayers, @YsApps, @AppRochester
http://strugglingthru.net/
[email protected]
About
me
 Principal Software Engineer at InfiMed, Inc (Varian Medical
Systems)
 WPF, SQL Server 2005/2008, WCF, MFC, COM
 Co-Founder of AppRochester
 Mobile device user group in Rochester, NY
 Speaker in Buffalo, Rochester, Syracuse, and Boston
 Hold 12 MS certifications
 I have “drank the Microsoft koolaid” and enjoy it
 Worked with, WPF, Silverlight, SQL Server (co-author),
ASP.NET, MVC, Linq to SQL, EF, WCF, driver development,
DirectX, XNA, and many more things.
 11 apps in iOS store
 6 apps in Windows Phone store
 2 Android apps
Overview
 About me
 Entity Framework
 Code First
 SQL CE
 Localdb
Entity
Framework
 ERM included in .NET 3.5 sp1
 Point EF to a database and have it generate classes and
relationships for you
 Previous products like CodeSmith, nHibernate, etc
 Database First
 EF 4.0 included with .NET 4.0
 fixed many bugs, added features like lazy loading (Linq to SQL)
 EF 4.1 – online download, Package Manager
 Adds Code First
 EF 4.3.1 current version
 EF 5.0 beta
 Adding migration -> versioning of databases
Database First
 Create the database using scripts or SSMS
 Point EF to an existing database
 Generated an edmx file with the model
 Great for adding/converting existing databases to a
new ERM easily
 Update the model from the database
 Demo
Code First
 Takes the opposite approach
 Start with the classes that you want to store
 Generate the database
 Changing the classes can regenerate the database
 Migration in 4.3.1 and 5.0 is setup to handle updating the
database better
 Defaults to SQLExpress that is installed on the system
 4.3.1 will default to localdb if SQLExpress is not installed
 Attributes or Fluent API
 Demo
Code First Data Annotation
(Attributes)











Key
Required
MaxLength / MinLength
NotMapped
ComplexType
ConcurrencyCheck
TimeStamp
Table / Column
DatabaseGenerated
InverseProperty / ForeignKey
ErrorMessage – not really an annotation
SQL
CE
 Single file, no server running – similar to Access
 CE 3.5 and 4.0 are common versions
 Can run on mobile devices (Windows CE 6, Windows
Phone 7.5)
localdb
 New feature of SQL 2012
 Being installed with VS 2011 instead of SQL Express
 Same sqlserver.exe as SQLExpress
 Not launched as a service but launched as a child process
SQL
SQL CECe vs LocalDb
LocalDb
 2.5 MB download size
 32 MB download size











18 MB expanded on disk
Single file
Privately installed, embedded,
with the application
Non-admin installation option
Runs in-process with
application
Database size support – 4G
Code free, document safe, file
format
Number of concurrent
connections - 256







•
> 160 MB on disk (TBD)
Multiple files
Database size support – 10G
Runs as process started by app
Procedural T-SQL - Select Case, If,
features
LINQ to SQL
Distributed transactions
Native XML, XQuery/XPath
Stored procedures, views, triggers
Role-based security
Number of concurrent connections
– unlimited but only local
Being bundled into VS 2011
Transact-SQL - Common Query Features
•
ADO.NET Entity Framework 4.1
Code First DEMO
 Converting a product with hardcoded values to a
database driven model
 Started developing with SQL CE for small local
database
 Simple table definitions
database