Почему строка подключения без метаданных работает?

У меня были строки подключения для Entity Framework edmx, что является обычной строкой подключения EF с метаданными.

Теперь я реализую mvc-mini-profiler и написал ниже метод для создания контекста. Сейчас я использую только часть строки подключения sql, больше не используя строку подключения EF.

Теперь это работает, но мне любопытно, как он получает метаданные (адрес .csdl, .ssdl). Если он может найти сейчас, то зачем 'new Context()' нужны метаданные

public static T GetProfiledContext<T>() where T : ObjectContext
    {
        // create connection
        var sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString);
        // wrap the connection with a profiling connection that tracks timings 
        var profiledDbConnection = MvcMiniProfiler.Data.ProfiledDbConnection.Get(sqlConnection, MiniProfiler.Current);
        // create context
        return profiledDbConnection.CreateObjectContext<T>();
    }

person mamu    schedule 16.07.2011    source источник


Ответы (1)


Причина, по которой он работает без метаданных, заключается в том, что метод расширения CreateObjectContext добавит эти метаданные при создании контекста. Он использует подстановочные знаки: res://*/ для получения метаданных. Вы можете проверить реализацию здесь.

person Ladislav Mrnka    schedule 17.07.2011