我正在尝试遵循 ASP.NET Web 窗体教程,仅使用 MySQL 连接而不是本地连接:ASP.NET Web 窗体 - 创建数据访问层
我已经测试了连接字符串是否有效,因为我在现有数据库中创建了一个虚拟表,当我运行应用程序时,我可以在服务器资源管理器中看到它。
但根据教程,它还应该创建一个数据库和表并为其提供种子。但什么也没发生。
这是我的连接字符串:
<add name="myProject" connectionString="Data Source=MY_PC_NAME;User Id=testuser; Password=testpassword; Integrated Security=False" providerName="System.Data.SqlClient"/>
这是
ProjectContext
文件:
namespace myProject.Models
{
public class ProjectContext : DbContext
{
public ProjectContext() : base("base_name")
{
}
public DbSet<Item> Items { get; set; }
public DbSet<Category> Categories{ get; set; }
}
}
还有
ProjectDatabaseInitializer
:
public class ProjectDatabaseInitializer : DropCreateDatabaseIfModelChanges<ProjectContext>
{
protected override void Seed(ProjectContext context)
{
GetItems().ForEach(i => context.Items.Add(i));
GetCategories().ForEach(c => context.Categories.Add(c));
}
// some seeding lists below
然后我将初始化程序添加到
Global.asax.cs
:
Database.SetInitializer(new ProjectDatabaseInitializer());
并且
Items
和Categories
都有相应的Item
和Category
型号。
但是当我运行该应用程序时,服务器资源管理器仍为空。
请注意,我稍微修改了教程的原始代码
首先,确保 ProjectContext 中的
base("base_name")
与 Web.config 中的 name 相同“name” ->