我一直在与新的Google OAuth争吵好几天,我相信我让它工作(删除并重新安装了owin),但现在当我点击我的网站时,我得到:
SQLExpress数据库文件自动创建错误:
...连接字符串使用应用程序的App_Data目录中的数据库位置指定本地Sql Server Express实例...
表示它正在尝试访问App_Data目录中的SQL Express数据库。我希望它连接到我现有的外部SQL Server
我创建了一个连接字符串(现在有两个)。
我试图将传递到ApplicationDbContext基础的连接字符串更改为我的连接字符串:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("myconnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
我尝试指向直接连接字符串和实体字符串。实体字符串最初错误地表示没有包含的表,但现在它给了我同样的错误。
我尝试将web.config更改为:
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
<parameters>
<parameter value="[tried a connection string here as well]"/>
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
我在FilterConfig.cs中读过类似线条的提示(它引用的功能似乎不存在于EF 5中):
filters.Add(new InitializeMembershipAttribute());
我刚刚开始使用来自ASP.NET的EF 5 - 基本概念没有问题,框架非常灵活,但会员问题一直是令人沮丧的经历(而且我已经很累了在这很久)!我之前在MVC中创建了没有会员资格的小网站......
是否缺少特定的web.config条目,类似于旧学校ASP.NET成员资格的条目?
我也在使用[授权(角色=&#34; a,b,等等#34;)] - 我是否需要指定角色特定的内容,或者对身份类的更改是否需要将其作为好?
答案 0 :(得分:0)
您需要将连接字符串添加到web.config。 DbContext中设置的基本名称必须与web.config中的名称匹配,并且区分大小写。
远程数据库看起来像第一行,本地数据库看起来像第二行。
像这样:
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=0.0.0.0;Initial Catalog=DatabaseName;Persist Security Info=True;User ID=someuser;Password=somepass" providerName="System.Data.SqlClient" />
<add name="mycontext" connectionString="Data Source=(localdb)\v11.0; Initial Catalog=mycontext-20150116012312; Integrated Security=True; MultipleActiveResultSets=True; AttachDbFilename=|DataDirectory|mycontext-20150116012312.mdf" providerName="System.Data.SqlClient" />
</connectionStrings>
... more content here ...
</configuration>
希望这有帮助!