【发布时间】:2011-11-30 23:37:49
【问题描述】:
在创建包含原始类型集合并由 EF Code First 持久化的 POCO 类时,迄今为止我发现的最佳建议是创建一个具有 ID 和原始类型的新类:
Entity Framework and Models with Simple Arrays
如果我现在有几个类需要 ObservableCollection<string> 类型的属性并将它们替换为 ObservableCollection<EntityString>(其中 EntityString 是具有 Id 和字符串属性的自定义类型),我最终会得到一个表 @987654326 @ 具有多个外键列,每个具有此类属性的具体类型的 ObservableCollection<EntityString> 类型的每个属性都有一个。
这会导致EntityString 表中大部分为空的外键列膨胀。
一种方法是创建EntityString 的子类,并为这些子类使用Table per Type 模型。但是,这需要对对象模型进行尴尬的更改以适应实体框架。
问题:
- 封装类型是管理
Collection<PrimitiveType>的最佳方式吗? - 如果是这样,允许多个(许多)外键列与为每种类型创建自定义表(以笨拙的模型为代价)的优缺点是什么?
【问题讨论】:
标签: entity-framework entity-framework-4.1 ef-code-first