使用 asp.NET MVC3,我正在尝试创建具有以下内容的抽象类/模型:
namespace core.Models.Concrete
{
public class item
{
[Key]
public Guid id { get; set; }
public Type ConcreteType { get; set; }
public itemtype Type { get; set; }
public string barcode { get; set; }
public int rating { get; set; }
public string Title { get; set; }
}
}
public enum itemtype
{
Game,
Book,
Film
}
由以下人员使用:
namespace core.Models.Abstract
{
public class game : item
{
public gamePlatform platform { get; set; }
}
public enum gamePlatform
{
PC,
X360,
PS3,
Wii
}
}
当我update-database
在 Entity Framework 4.3 代码中运行第一次迁移时,我得到:
Value cannot be null.
Parameter name: key
难道我做错了什么?这甚至是一种公认的做事方式吗?我真的不想使用接口,因为这意味着在使用的每个事物中实现所有字段item
编辑
我刚刚发现这来自global.asax.cs
Application_Start中的以下代码:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
//System.Data.Entity.Database.SetInitializer<DataContext>(new DataContextInitializer());
using (coreContext TestContext = new coreContext())
{
var x =TestContext.Users.Count(); <!-- THIS LINE HERE
try
{
Roles.CreateRole("User");
}catch
{
//Already created
}
}
}
核心背景:
public class coreContext : DbContext
{
public DbSet<core.Models.Abstract.game> games { get; set; }
}