xiv
■CONTENTS
Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
SQLMetal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
The Object Relational Designer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
Use SQLMetal and the O/R Designer Together . . . . . . . . . . . . . . . . . . . . 413
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
■CHAPTER 14 LINQ to SQL Database Operations . . . . . . . . . . . . . . . . . . . . . . . 415
Prerequisites for Running the Examples . . . . . . . . . . . . . . . . . . . . . . . . . 415
Some Common Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Using the LINQ to SQL API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Standard Database Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
Inserts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
Queries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
Deletes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
Overriding Database Modification Statements . . . . . . . . . . . . . . . . . . . . 449
Overriding the Insert Method. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
Overriding the Update Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Overriding the Delete Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Overriding in the Object Relational Designer. . . . . . . . . . . . . . . . . . 453
Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
SQL Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
■CHAPTER 15 LINQ to SQL Entity Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Prerequisites for Running the Examples . . . . . . . . . . . . . . . . . . . . . . . . . 457
Entity Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Creating Entity Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
XML External Mapping File Schema. . . . . . . . . . . . . . . . . . . . . . . . . 484
Projecting into Entity Classes vs. Nonentity Classes . . . . . . . . . . . 485
Extending Entity Classes with Partial Methods . . . . . . . . . . . . . . . . . . . . 490
Important System.Data.Linq API Classes . . . . . . . . . . . . . . . . . . . . . . . . . 492
EntitySet<T>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
EntityRef<T>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
Table<T>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
IExecuteResult. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
ISingleResult<T> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
IMultipleResults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Rattz_789-3FRONT.fm Page xiv Thursday, October 25, 2007 8:59 AM