5

Я хочу запустить тесты с помощью Effort, и для этого мне нужно указать строку соединения, которая также содержит ссылку на .csdl,.ssdl и .msl. (Нерабочий) ConnectionString будет выглядеть так:Где сначала найти файлы .csdl, .ssdl и .msl в коде Entity Framework 4.0?

<add name="SQLAzureConnection" connectionString= 
"metadata=res://*/Model.projectContext.csdl| 
res://*/Model.projectContext.ssdl|res://*/Model.projectContext.msl; 
    provider=System.Data.SqlClient; 
    provider connection string=&quot;Data Source=(LocalDb)\v11.0;Initial Catalog=Database_Nieuw;Integrated Security=false;MultipleActiveResultSets=False&quot;" 
providerName="System.Data.EntityClient" /> 

Model.projectContext часть неверны, но я не знаю, что это должно быть.

Когда я использую эту строку, я получаю следующую ошибку в тесте, который использует эту строку соединения, чтобы создать соединение с базой данных с помощью Effort.

Test: failed 
Result Message: Initialization method 
project.Tests.Controllers.ShoppingCartTest.Initialize threw exception. 
System.InvalidOperationException: System.InvalidOperationException: Resource res://* 
/Model.seashell_brawl_corveeContext.csdl not found.. 

Я понятия не имею, где я могу найти этот файл .csdl, я только знаю, что это необходимо. Я не могу создать их из моего файла .emdx, потому что у меня есть первая база данных кода, и щелчок правой кнопкой мыши в дизайнере не дает опции Update database from model, так как another question дал в качестве решения. Я также установил Metadata Artifact Processing" option to "Embed in Output Assembly.

Кто-нибудь знает, где я могу найти эти файлы и как я могу правильно их ссылаться?

/Edit:

Хорошо, это ясно мне теперь, что файлы не существуют в коде первых проектов. Используя подсказку user20 ... ниже в комментариях, строка подключения, похоже, работает сейчас. Новый выпуск состоит в следующем:

`Test Outcome: Failed error 0040: The Type date is not qualified with a namespace or 
alias. Only primitive types can be used without qualification.` 

Очень странно, так как я использую [DataType(DataType.DateTime)] везде. Кто-нибудь знает, как это решить?

+5

При использовании кода First вы не имеете .csdl, .ssdl и .msl. Строка соединения также отличается. В основном правильная строка соединения - это то, что описано как «строка подключения поставщика» в вашей текущей строке подключения. – user3038092

+0

Хорошо, что объясняет многое! Поэтому я должен использовать строку подключения поставщика. Я попробую и отчитаюсь./Редактировать. Хорошо, я изменил его. -> Теперь он говорит, что ключевое слово «Источник данных» не поддерживается. –

+0

@ user3038092 Как я могу ссылаться на строку подключения в отношении ошибки «Источник данных не поддерживается»? Возможно ли это? Обратите внимание, что эта строка подключения находится в моем тестовом проекте. Не в реальном проекте, там строка работает. –

ответ

1

Как объяснено user3038092:

When using Code First you do not have a .csdl, .ssdl and .msl. The connection string differs also. Basically the correct connection string is what is described as "provider connection string" within your current connection string

, который решает проблему.

+3

Дайте ссылку на вопрос, а не пользователь. –

+1

@AltafPatel Это первый комментарий под вопросом выше. –

Смежные вопросы