我有一个问题,即将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
与上下文无关,除了它继承自其中一个实体类。
有人可以帮我理解这里发生了什么吗?