我的 MVC 5 代码优先数据库在哪里创建? (不使用 AttachDbFilename)
Where is my MVC 5 code-first database created? (not using AttachDbFilename)
我的 MVC 5 weApp 中有以下连接字符串:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;User Instance=True;Initial Catalog=MatWebDB;Integrated Security=True" providerName="System.Data.SqlClient" />
我正在使用 Entity Framework 代码优先和 Identity 2 进行表单身份验证。
一切似乎工作正常:我注册了一个新用户并且它正确登录。
问题是我找不到创建的数据库;在我的 SQL Server Management Studio 中没有创建 "MatWebDB" 数据库。
我想做的是为我自己的 POCO 实体对象使用由 Identity 2 身份验证自动生成的同一个数据库。并知道它是在哪里创建的。
谢谢!
第 1 步:
在解决方案资源管理器中,首先有一个名为 "App_Data" 的默认文件夹,只需单击 select 这个文件夹即可。
第 2 步:
现在单击上面的菜单栏图标,即 "show all",如下图所示。
您会在那里找到您的数据库,只需双击数据库文件,即可编辑或添加新表。
组合它们的最简单方法是让您的应用程序上下文继承自身份上下文并在那里设置连接字符串:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
static ApplicationDbContext()
{
// Set the database intializer which is run once during application start
// Use an initializer that will create the database, or create it in SSMS first
Database.SetInitializer(new CreateDatabaseIfNotExists<ApplicationDbContext>());
}
// Your identity and application tables will be created in the database this connect string points to
public ApplicationDbContext()
: base("DefaultConnection", false)
{ }
// define your POCOs here
public virtual DbSet<Foo1> Foo1s { get; set; }
public virtual DbSet<Foo2> Foo2s { get; set; }
.. etc
}
很简单。在你的 Web.config
<configuration>
<connectionStrings>
首先使用代码和 Sqlserver:
如果你有一个本地数据库,你可以使用像这样的连接字符串:
<add name="DefaultConnection1" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;
AttachDbFilename=|DataDirectory|\aspnet-WebApplicationMVC-xxxx.mdf;
Initial Catalog=aspnet-WebApplicationMVC-xxxxx;Integrated Security=True"
providerName="System.Data.SqlClient" />
查看visual studio中的数据库:
如果您的数据库托管在在线服务器上:
<add name="DefaultConnection" providerName="System.Data.SqlClient"
connectionString="Data Source=SQLxxxxx;integrated security=false;
Initial Catalog=DB_9D914B_kermit;User Id=DBxxxxx;Password=xxxx;
Trusted_Connection=false;TrustServerCertificate=false;Encrypt=False;
MultipleActiveResultSets=True" />
要在 SQL 服务器管理工作室中查看数据库:
可以改变连接字符串的安全属性以满足您的需要。
我的 MVC 5 weApp 中有以下连接字符串:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;User Instance=True;Initial Catalog=MatWebDB;Integrated Security=True" providerName="System.Data.SqlClient" />
我正在使用 Entity Framework 代码优先和 Identity 2 进行表单身份验证。
一切似乎工作正常:我注册了一个新用户并且它正确登录。 问题是我找不到创建的数据库;在我的 SQL Server Management Studio 中没有创建 "MatWebDB" 数据库。
我想做的是为我自己的 POCO 实体对象使用由 Identity 2 身份验证自动生成的同一个数据库。并知道它是在哪里创建的。
谢谢!
第 1 步:
在解决方案资源管理器中,首先有一个名为 "App_Data" 的默认文件夹,只需单击 select 这个文件夹即可。
第 2 步:
现在单击上面的菜单栏图标,即 "show all",如下图所示。
您会在那里找到您的数据库,只需双击数据库文件,即可编辑或添加新表。
组合它们的最简单方法是让您的应用程序上下文继承自身份上下文并在那里设置连接字符串:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
static ApplicationDbContext()
{
// Set the database intializer which is run once during application start
// Use an initializer that will create the database, or create it in SSMS first
Database.SetInitializer(new CreateDatabaseIfNotExists<ApplicationDbContext>());
}
// Your identity and application tables will be created in the database this connect string points to
public ApplicationDbContext()
: base("DefaultConnection", false)
{ }
// define your POCOs here
public virtual DbSet<Foo1> Foo1s { get; set; }
public virtual DbSet<Foo2> Foo2s { get; set; }
.. etc
}
很简单。在你的 Web.config
<configuration>
<connectionStrings>
首先使用代码和 Sqlserver:
如果你有一个本地数据库,你可以使用像这样的连接字符串:
<add name="DefaultConnection1" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;
AttachDbFilename=|DataDirectory|\aspnet-WebApplicationMVC-xxxx.mdf;
Initial Catalog=aspnet-WebApplicationMVC-xxxxx;Integrated Security=True"
providerName="System.Data.SqlClient" />
查看visual studio中的数据库:
如果您的数据库托管在在线服务器上:
<add name="DefaultConnection" providerName="System.Data.SqlClient"
connectionString="Data Source=SQLxxxxx;integrated security=false;
Initial Catalog=DB_9D914B_kermit;User Id=DBxxxxx;Password=xxxx;
Trusted_Connection=false;TrustServerCertificate=false;Encrypt=False;
MultipleActiveResultSets=True" />
要在 SQL 服务器管理工作室中查看数据库:
可以改变连接字符串的安全属性以满足您的需要。