Ключевое слово не поддерживается: «источник данных», инициализирующий контекст Entity Framework - PullRequest
154 голосов
/ 09 августа 2011

Я инициализирую контекст объекта Entity Framework, и это дает мне ключевое слово не поддерживаемая ошибка:

metadata=res://*/MainDB.csdl|res://*/MainDB.ssdl|res://*/MainDB.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLEXPRESS;AttachDbFilename=D:\Workspace\vs\Leftouch\Leftouch.Web\Data\Leftouch.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;App=EntityFramework"

Я взял строку подключения прямо из web.config, который работали изменил только путь к файлу (который я установил динамически) и вместо использования значения по умолчанию использовал эту строку подключения явно.Что может вызвать эту ошибку?

Ответы [ 4 ]

306 голосов
/ 10 августа 2011

Настоящая причина, по которой вы получили эту ошибку, заключается в том, что в строке подключения указаны значения ".

Если вы замените их одинарными кавычками, то все будет работать нормально.

http://blogs.msdn.com/b/rickandy/archive/2008/12/09/explicit-connection-string-for-ef.aspx

(Опубликовано, чтобы другие могли получить исправление быстрее, чем я.)

33 голосов
/ 27 июля 2016

Я исправил это, изменив EntityClient обратно на SqlClient, хотя я использовал Entity Framework.

Итак, моя полная строка подключения была в формате:

<add name="DefaultConnection" connectionString="Data Source=localhost;Initial Catalog=xxx;Persist Security Info=True;User ID=xxx;Password=xxx" providerName="System.Data.SqlClient" />
13 голосов
/ 09 августа 2011

Похоже, что отсутствует бит providerName="System.Data.EntityClient".Уверен, что ты все понял?

2 голосов
/ 20 апреля 2015

Верьте или нет, переименование LinqPad.exe.config в LinqPad.config решило эту проблему.

...