5.12. Where Are We?

After learning how DataSet can be used as a standalone, relational cache, you've gone on in this chapter to investigate a method for using DataSet with a data-provider-specific DataAdapter to implement disconnected database caching and updating based on optimistic concurrency. You've gone through several optimistic update scenarios and common solutions, including that provided by default through the CommandBuilder class. Although DataSet is relational, the exact semantics of using it with a database (relational or nonrelational) is based on how the data provider's DataAdapter class is implemented, especially in mapping database data types to CLR types in DataSet.

You'll go on from here to look at two types of data access in ...

Get Essential ADO.NET now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.