据我了解,Type 类型的属性不能直接存储在数据库中。因此,我决定创建一个包装器 - 我希望 Entity Framework 存储类型名称并创建一个属性来返回所需的类型:
[Table("DescriptiveCategory")]
public class DescriptiveCategory : Category {
public string RelatedTypeName { get; set; }
public Type RelatedType {
get {
return Type.GetType(RelatedTypeName);
}
set {
RelatedTypeName = value.FullName;
}
}
}
不幸的是,这不起作用:如果我尝试更新数据库,我会得到
Value cannot be null.
Parameter name: extent
如果我评论RelatedType
财产,一切都很好。但我不希望 Entity Framework 具有此属性的任何内容 - 它仅满足我的需求。我可能可以创建 get 和 set 方法,但我不明白为什么这种方法(使用计算属性)不起作用。