У меня есть проект MVC 5 на моей визуальной студии 2015. Я использовал модель данных сущности ADO для создания моей модели данных базы данных Сначала и у меня есть индивидуальная идентификация (я не знать, если это имеет значение, так или иначе), и все это работает отлично, пока здесь. Проблема в том, что я начинаю создавать свой класс UnitTest. Сначала я щелкаю правой кнопкой мыши и выберите создавать модульные тесты, так что я сделал что-то подобноеASP NET MVC 5 Исключение объекта TestMethod
[TestMethod()]
public void PermissionsTest()
{
GroupController controller = new GroupController();
var result = controller.Permissions("1") as ViewResult;
Assert.AreEqual("Details", result.ViewName);
}
Я положил ссылку на проект MVC в мой тестовый проект тоже, и я обновил свой app.config добавив ConnectionStrings, что я я использую мой проект MVC. Но я получаю исключение:
Result Message:
Test method Controllers.Tests.GroupControllerTests.PermissionsTest threw exception:
System.Data.Entity.Core.MetadataException: Schema specified is not valid. Errors:
Models.Domain.Models.ssdl(2,2) : error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'. Make sure the provider is registered in the 'entityFramework' section of the application config file. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.
Так кто-нибудь может мне помочь?
После внушения Wikitor в моем app.config выглядит с:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=****.****.com;Initial Catalog=LDC;Integrated Security=False;User ID=****;Password=****;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False" providerName="System.Data.SqlClient" />
<add name="LDCEntities" connectionString="metadata=res://*/Models.Domain.LdcModels.csdl|res://*/Models.Domain.LdcModels.ssdl|res://*/Models.Domain.LdcModels.msl;provider=System.Data.SqlClient;provider connection string="data source=****.***.***;initial catalog=LDC;persist security info=True;user id=****;password=*****;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v12.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Спасибо Wiktor, я попытался поставить тот же тег «entityFramework », которое у меня есть в моем проекте, и теперь у меня есть System.TypeInitializationException: инициализатор типа для« System.Data.Entity.Internal.AppConfig »сделал исключение. ---> System.Configuration.ConfigurationErrorsException: Системе конфигурации не удалось инициализировать ---> System.Configuration.ConfigurationErrorsException: непризнанный раздел конфигурации entityFramework. Знаете ли вы, где проблема? Опубликовать мой app.config поможет? Я обновлю свой вопрос выше –
Возможно, вы положили его в неправильное место. Я бы хотел помочь, но теперь я уезжаю домой. Удачи, желаю вам решить эту проблему. У меня также были проблемы, подобные этому в прошлом :(вы обновляете help –
@diegocolli В проекте MVC есть ** два файла ** WebConfig.cs. Убедитесь, что у вас есть это в том, что есть ** NOT * * внутри папки \ Views. – krillgar