Design Meeting Notes - July 18, 2013

General API review and cleanup

Decisions made:

  • Make virtual all SaveChangesAsync methods on DbContext to avoid having to mock/fake a different method than the one being called
  • Update DbModelBuilderVersion enum values to be consistent with those shipped in EF5
    • This included adding back V5_0_Net4 which had been removed and will cause a V2 schema to be produced
  • Move the new executor code to System.Data.Entity.Infrastructure.Design and made internal
    • This is a mechanism for cross-app domain communication that could in the future be used for PowerShell communication but is currently only used from the designer
  • Move CsdlSerializer, SsdlSerializer, and related types to System.Data.Entity.Core.Metadata.Edm namespace
  • Move DataModelErrorEventArgs and related types to System.Data.Entity.Core.Metadata.Edm namespace
  • Make DbCompiledModel.DefaultSchema internal
    • DbCompiledModel is still an opaque type so it does not seem appropriate for this to be public
  • Move DbMappingView classes to System.Data.Entity.Infrastructure.MappingViews namespace
    • Considered making DbMappingViewCacheFactory internal but decided it should stay public for scenarios without an ObjectContext or DbContext
  • Make the properties on DbMappingViewCacheTypeAttribute internal
  • Unseal DbModel again
  • Make Async methods on DbRawSqlQuery virtual – for the same reason as the SaveChanges methods
  • We investigated removal of the isMaxLength parameter on ColumnModel methods and decided it should remain removed--it is not used, is confusing because it is not used, and the break is unlikely to be significant
  • We investigated the removal of Generate(byte) methods on code generators and decided this is fine because Generate(long) will be used instead. It is very unlikely this change will break anyone after recompile.

Last edited Jul 23, 2013 at 4:57 PM by ajcvickers, version 2