#### to do ##### fundamentals (41) * connection strings * connection resiliency * testing => sqlite, inmemory * configuring a dbcontext ? * nullable reference types => navigating (include, theninclude) ##### creating a model (42) * entity types, entity properties, keys, generated values, backing fields? * initialization strategy, seeding data * shadow properties * ###### relationships * single navigation property * cascade delete * one to one * one to many * many to many * foreign key * required and optional relationships * indexes? * ###### inheritance * TPH * discriminator configuration * shared columns * sequences? * value conversion * entity type constructors * table splitting and table sharing?, owned types? * keyless entity types? * alternating model with same DbContext? * spatial data? ##### managing database schemas + migrations (43) * migrations * create and drop APIs * reverse engineering? ##### querying data: LINQ to SQL (44) * loading all entity, loading a single entity, filtering * client vs. server evaluation * tracking vs. no-tracking * complex query operators (join, groupjoin, selectmany, groupby, leftjoin) * ###### loading related data (include, theninclude...) * eager loading * explicit loading * lazy loading * related data and serialization? * asynchronous queries? * raw sql queries? * global query filters? * query tags? * how queries work ##### saving data (44) * basic save (adding, removing, updating, multiple changes) * related data (a graph of new entities, a related entity, changing or removing relationships) * cascade delete * concurrency conflicts * transactions * asynchronous saving? * disconnected entities? * setting explicit values for generated properties? ##### database providers (45) * microsoft sql server * sqlite * cosmos? * inmemory (for testing) ##### optional * logging * supported .NET implementations