This project is read-only.

Design Meeting Notes - June 6, 2013

HasPrecision in lightweight conventions

Two overloads of HasPrecision in the normal fluent API. The overload with one parameter is presented when setting precision for DateTime values. The overload with two parameters is presented when setting precision and scale for decimal values. Both these overloads exist when using the API in lightweight conventions because there is no type to filter by. What should happen if the two parameter overload is called for a DateTime or the one parameter overload is called for a decimal? Decision: based on previous discussion on calling invalid configure methods these should throw if used on an inappropriate type.

Make command tree interception internal for EF6?

Currently the interface looks like this:

public interface IDbCommandTreeInterceptor : IDbInterceptor
{
    void TreeCreated(
        DbCommandTree commandTree, 
        DbCommandTreeInterceptionContext interceptionContext);
}

Reasons we might want to make it internal:

  • We may want to add other methods in the future—for example, TreeCreating
    • But TreeCreating seems unlikely to be useful, and currently we don’t know of anything else we would add
    • if we need to create a new interface for additional methods it shouldn’t be too bad in this case
  • Query trees can be publicly constructed; update trees cannot
    • If the work to make these publicly constructible is small, then we should just do it
  • Limited functional/user experience testing, including around cache interactions
    • If we leave it public, then we should do some additional exploratory testing

Some additional investigation after the meeting indicated that we can easily make update trees publicly constructible. Therefore decision is to make them publicly constructible and leave interception public. We will also do additional exploratory testing.

Last edited Jun 7, 2013 at 1:51 AM by ajcvickers, version 2