是的,还有一个关于提供者清单令牌的问题。不幸的是,之前的所有22个问题都无法解决我的问题。我使用MVC4 + Code First + Sql Express开发简单的Web应用程序。
这是我的背景后代:
public class MCQContext : DbContext
{
public MCQContext()
: base("name=ApplicationConnection")
{
}
...............
}
在这里 - 与问题相关的web.config的一部分:
<configuration>
<configSections>
<section name="entityFramework"
type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false" />
</configSections>
<connectionStrings>
<add name="ApplicationConnection"
connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
<parameters>
<parameter value="name=ApplicationConnection" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
因此,正如您所看到的,正确的连接字符串传递给上下文类的基础(如果我将连接字符串重命名为“MCQContext”并且不将任何内容传递给父上下文类,则会出现相同的错误。)
我不知道如何修复它。如果我创建绝对空的MVC4应用程序,删除所有包(我更喜欢手动指定所需的程序集而不使用NuGet)并修复引用(包括对sqlserver express的引用),则会再现此行为。
答案 0 :(得分:0)
此处连接字符串的问题是:
<add name="TrempimModel"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
AttachDBFilename=|DataDirectory|aspnetdb.sdf;
User Instance=true"
providerName="System.Data.SqlClient" />
您基本上定义了您要连接的“服务器” - 但您并未说明要连接到的文件中的数据库。此外 - SQL Server Express数据库文件的文件扩展名是.mdf(不是.sdf - 即SQL Server Compact Edition) - 您也需要考虑到这一点! (根据OP的评论,这是一个错字。)
您需要在连接字符串中定义额外的数据库= ....(或初始目录= .....):
<add name="TrempimModel"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
database=YourDatabaseName;
AttachDBFilename=|DataDirectory|aspnetdb.mdf;
User Instance=true"
providerName="System.Data.SqlClient" />
然后它应该可以正常工作。