C# ASP.NET връзка с грешка в базата данни

И така, опитвам се да науча ASP.NET, но съм заседнал, когато става въпрос за DB връзки.

Получавам следната грешка:

Не може да се намери исканият доставчик на данни .Net Framework. Може да не е инсталиран.

Описание: Възникна необработено изключение по време на изпълнението на текущата уеб заявка. Моля, прегледайте проследяването на стека за повече информация относно грешката и откъде произлиза в кода.

Подробности за изключение: System.ArgumentException: Не може да се намери исканият доставчик на данни .Net Framework. Може да не е инсталиран.

и

Проследяване на стека:

[ArgumentException: Не може да се намери исканият доставчик на данни .Net Framework. Може да не е инсталиран.]
System.Data.Common.DbProviderFactory.GetFactory(String providerInvariantName) +1480903
WebMatrix.Data.DbProviderFactoryWrapper.CreateConnection(String connectionString) +63
WebMatrix.Data.‹> c__DisplayClass15.b__14() +16
WebMatrix.Data.Database.get_Connection() +19
WebMatrix.Data.Database.EnsureConnectionOpen() +12
WebMatrix.Data.d__0.MoveNext() +66< br> System.Collections.Generic.List`1..ctor(IEnumerable`1 колекция) +381
System.Linq.Enumerable.ToList(IEnumerable`1 източник) +58
WebMatrix.Data.Database.Query (Параметри String commandText, Object[]) +102
ASP._Page_NewUser_cshtml.Execute() в c:\Users\Euaggelos\Documents\Visual Studio 2013\WebSites\WebSite5\NewUser.cshtml:20
System.Web .WebPages.WebPageBase.ExecutePageHierarchy() +199
System.Web.WebPages.WebPage.ExecutePageHierarchy(IEnumerable`1 изпълнители) +69
System.Web.WebPages.WebPage.ExecutePageHierarchy() +131
Система .Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +78
System.Web.WebPages.WebPageHttpHandler.ProcessRequestInternal(HttpContextBase httpContext) +116

Проблемът е, че имам инсталиран .net Framework Data Provider.

Ето части от моя код:

<connectionStrings>
    <add name="DB1Entities" connectionString="metadata=res://*/App_Code.Model.csdl|res://*/App_Code.Model.ssdl|res://*/App_Code.Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\DB1Entities.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

@using WebMatrix.Data;

@{
    Page.Title = "Add you user";
    Layout = "_Layout.cshtml";
    var db = Database.Open("DB1Entities"); 
    var selectQueryString = "SELECT * FROM Users ORDER BY FirstName";
}



<h1>New user</h1>

<table>
    <tr>
        <th>Id</th>
        <th>First name</th>
        <th>Last name</th>
    </tr>
    @foreach (var row in db.Query(selectQueryString)) <!--THIS IS THE ERROR LINE-->
    {
        <tr>
            <td>@row.Id</td>
            <td>@row.FirstName</td>
            <td>@row.LastName</td>
        </tr>
    }
</table> 

въведете описание на изображението тук


person Angelo Uknown    schedule 21.05.2015    source източник
comment
Unkown добре, може би опитът за поправка или деинсталиране също може да помогне защо използвате ASP.NET, когато MVC е пътят напред.   -  person Enzero    schedule 21.05.2015
comment
Поправих го няколко пъти, с рестартирания между тях и нищо не се случи. Ако можете да предоставите добър урок за MVC, ще се радвам да го разгледам.   -  person Angelo Uknown    schedule 21.05.2015
comment
има добър курс на pluralsight, въпреки че има различни други налични курсове.ASP.NET 5: Първи поглед   -  person Enzero    schedule 21.05.2015


Отговори (2)


Може да се наложи да добавите това към вашия файл app.config

  <system.data>
<DbProviderFactories>
  <remove invariant="System.Data.SqlServerCe.4.0" />
  <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</DbProviderFactories>

person Zalomon    schedule 21.05.2015

Вашият низ за връзка е за проект на Entity Framework Database First. Изглежда обаче, че не използвате EF във вашия сайт WebMatrix. Използвате стандартен SQL за запитване към базата данни. Променете низа за свързване на обикновен:

<connectionStrings>
    <add name="DB1Entities" connectionString="data source=LocalDB)\v11.0;attachdbfilename=|DataDirectory|\DB1Entities.mdf;integrated security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>

Ако искате да използвате Entity Framework с проект за уеб страници, трябва да използвате подхода Code First, както е описано подробно в моята статия тук: http://www.mikesdotnetting.com/article/182/entity-framework-code-first-development-with-webmatrix

person Mike Brind    schedule 27.05.2015