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; }
}