![](/img/trans.png)
[英]How to bind EF Code First DbContext to an Asp.Net DataSource?
[英]ASP.NET Identity DbContext Issue with EF Code First Migrations
EDIT2:我使用此“数据源=(LocalDB)\\ MSSQLLocalDB”作为连接字符串,并且一切正常。 我猜我在用sqlexpress做一些愚蠢的事情。
我正在尝试根据本教程使用ASP.NET(4.5)Identity(2.2)和EF(6)Code First迁移为用户创建一个简单的数据库
仅当ApplicationDbContext从IdentityDbContext继承时,才会发生此问题。
因此,首先,我创建一个空的asp.net项目。 然后为用户提供Entity类:
using Microsoft.AspNet.Identity.EntityFramework;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace AspNetIdentity.Infrastructure
{
public class ApplicationUser : IdentityUser
{
[Required]
[MaxLength(100)]
public string FirstName { get; set; }
[Required]
[MaxLength(100)]
public string LastName { get; set; }
[Required]
public byte Level { get; set; }
[Required]
public DateTime JoinDate { get; set; }
}
}
然后,我创建DbContext类:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection")
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
到现在为止还挺好。 现在是问题所在:我将连接字符串添加到web.config中,如下所示
<connectionStrings>
<add name="DefaultConnection" connectionString="Data
Source=.\sqlexpress;Initial Catalog=AspNetIdentity;Integrated
Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
当我跑步时
enable-migrations
我收到以下错误:
访问数据库时发生错误。 这通常意味着与数据库的连接失败。 检查连接字符串是否正确,是否使用了适当的DbContext构造函数来指定它或在应用程序的配置文件中找到它。 有关DbContext和连接的信息,请参见http://go.microsoft.com/fwlink/?LinkId=386386 。 有关失败的详细信息,请参见内部异常。
如果我尝试完全相同的事情,但使用正常的DbContext,一切都会按预期进行。 有什么想法我可能做错了吗? 这东西现在困扰我好几天了。
EDIT1:下面是控制台中的完整输出,这是巨大的,因此我将它们附加为图像,我希望可以。
如果错误在那里太明显,对不起,我是新手:)
通常,关于SQL Express,有两点不可忘记:启用TCP / IP协议+启用并启动SQL Browser Windows服务。 防火墙也可能是原因。 请查看本文是否对您有帮助。
在Visual Studio中,按Control + Alt + S并检查“是否在数据连接中看到您的Db”,也在解决方案资源管理器中单击“显示所有文件”,然后检查App_Data文件夹。 如果看不到您的数据库或您看到不同的数据库名称,则问题出在您的连接字符串中。 如果您只是在测试数据库连接,并且没有重要数据,请尝试删除migrations文件夹,并在连接字符串中重命名基本连接和默认连接。 在启用迁移之后,添加迁移,然后更新数据库。 希望它可以帮助干杯!
我是ASP.NET的新手,但是我已经修改了connectionStrings以使用localdb:
<connectionStrings>
<add name="DefaultConnection"
connectionString="Server=(localdb)\v11.0;Integrated Security=true;"
providerName="System.Data.SqlClient" />
</connectionStrings>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.