继承自影响数据库的代码第一实体框架中的实体类

时间:2013-10-16 08:02:51

标签: inheritance entity-framework-4

我有一个问题,即将Entity Framework for SQL compact,4.3.1与NuGet一起安装到以下控制台应用程序中(项目属性 - >输出类型= windows应用程序,如果你想复制的话):

namespace TestEntityFrameworkInheritance
{
    class DbExampleRecord
    {
        [Key]
        public int Id { get; set; }
        public string Name { get; set; }
    }

    class ExampleModel : DbExampleRecord
    {
        public TimeSpan NotInDb { get; set; }
    }

    class DataContext : DbContext
    {
        public DbSet<DbExampleRecord> ExampleRecords { get; set; }
    }

    static void Main()
    {
        Database.SetInitializer<DataContext>(
            new DropCreateDatabaseIfModelChanges<DataContext>());
        using (var db = new DataContext())
        {
            var dummy = db.ExampleRecords.Add(
                  new DbExampleRecord{ Name="test record"});
            db.SaveChanges();
        }
    }
}

db.ExampleRecords.Add( ...方法上失败:

  

EntityFramework.dll中出现未处理的“System.NotSupportedException”类型异常

     

附加信息:没有与原始类型“时间”的EDM类型'Edm.Time(Nullable = True)'对应的商店类型

即,EF试图将ExampleModel的timepan属性放入数据库,但ExampleModel与上下文无关,除了它继承自其中一个实体类。

有人可以帮我理解这里发生了什么吗?

0 个答案:

没有答案