【发布时间】:2014-05-30 08:25:14
【问题描述】:
我正在 Visual Studio Ultimate 2013 中处理 C# ASP.NET Web 窗体项目,同时遵循这个 http://goo.gl/1hK73 教程(但没有做完全相同的项目)。但是,我无法在 App_Date 中创建 .mdf 文件。
我已经创建了我的实体类 DbContext,在我的一个表中添加了一个项目,向 Web.config 添加了一个 connectionString:
<add name="TestingSystem" connectionString="Data Source (LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\studenttestingsystem.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
,并在 Global.asax.cs Application_Start() 方法中初始化数据库:
Database.SetInitializer(new TestingSystemDatabaseInitializer());
我查找了一些类似的问题,但对我没有任何帮助(我已经完成或只是没有工作)。
我在解决方案资源管理器中刷新了 App_Data 文件夹并使用了显示所有文件选项,但没有任何改变。
我的 TestingSystemDatabaseInitializer:
using System.Collections.Generic;
using System.Data.Entity;
namespace Student_Testing_System.Models
{
public class TestingSystemDatabaseInitializer : DropCreateDatabaseIfModelChanges<TestingSystemContext>
{
protected override void Seed(TestingSystemContext context)
{
var root = new Category()
{
CategoryId = 0,
CategoryName = "root",
Description = "Default category",
ParentId = null,
Parent = null,
};
context.Categories.Add(root);
}
}
}
上下文:
public class TestingSystemContext : DbContext
{
public TestingSystemContext()
: base("TestingSystem")
{
}
public DbSet<Question> Questions { get; set; }
public DbSet<Category> Categories { get; set; }
public DbSet<Template> Templates { get; set; }
public DbSet<Test> Tests { get; set; }
public DbSet<StudyGroup> StudyGroups { get; set; }
}
此外,当通过 PM 中的 Update-Database 更新数据库时,出现错误:
EntityType 'IdentityUserLogin' 没有定义键。定义此 EntityType 的键。
EntityType 'IdentityUserRole' 没有定义键。定义此 EntityType 的键。
这两个类都是 EntityFramework 的一部分,并且没有 [Key] 的数据注释,所以我不知道如何解决这个问题。
身份用户登录:
public class IdentityUserLogin
{
public IdentityUserLogin();
public virtual string LoginProvider { get; set; }
public virtual string ProviderKey { get; set; }
public virtual IdentityUser User { get; set; }
public virtual string UserId { get; set; }
}
身份用户角色:
public class IdentityUserRole
{
public IdentityUserRole();
public virtual IdentityRole Role { get; set; }
public virtual string RoleId { get; set; }
public virtual IdentityUser User { get; set; }
public virtual string UserId { get; set; }
}
【问题讨论】:
-
能否也添加上下文的来源?
标签: c# asp.net entity-framework webforms