Почему работает строка соединения без метаданных? - PullRequest
1 голос
/ 16 июля 2011

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

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

Теперь это работает, но мне любопытно, как он получает метаданные (.csdl, .ssdl address), если он может найти сейчас, то почему «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>();
    }

1 Ответ

2 голосов
/ 17 июля 2011

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

...