1

我有一个基类,也有派生类。使用 EF4 TPH(Table-per-hierarchy)将基类映射到表。在我的应用程序中,用户可以选择许多派生类之一,然后我需要使用正确填充的“鉴别器”列来保存它们。

在 UI 上,用户仅输入 Id 和名称(基类属性),因此我将用户条目存储在基类对象列表中。因为我知道用户在运行时选择了哪种派生类型,所以我不知道该怎么做。

到目前为止,我已经尝试在基础对象上使用 Convert.ChangeType 来获取派生类对象,然后对实体进行添加。但它因“对象必须实现 IConvertible”而失败。

不知道我还能做什么。有任何想法吗?谢谢。

4

2 回答 2

0

使用var derivedEntity = Activator.CreateInstance(typeof(YourDerivedType));然后附加它。

或者更好的是,让实体框架为您完成:

var entity = Context.Set<TEntity>().Create();

ContextDbContext.

于 2012-09-04T20:22:16.967 回答
0

您可以将对象存储为基类对象的列表,但是,您应该实例化派生类对象。如果你一开始不这样做,你真的需要不同的课程吗?

于 2012-09-04T20:23:58.643 回答