1

这可能已经在某处被问过,但我找不到与我正在尝试做的完全匹配的问题。

在数据库级别,我有 TableB,它只有两个字段 - TableA 的外键和 nvarchar(max) 代码字段。从 TableA 到 TableB 的关系是一对多的

在 EF 级别,我想完全跳过映射 TableB。表 A 看起来像这样:

public class TableA
{
    public ICollection<string> BCodes {get; set;}
}

我希望从所有相关 TableB 实体的 Code 字段中填充 BCodes。我知道我可以使用数据库上的视图和其他 hack 来实现这一点,但这破坏了关注点的分离。这是否可以使用 EF,或者我是否必须仅使用一个字符串属性映射 TableB 实体?

更新 我应该澄清一下,对于我的具体情况,这可能是一个只读集合。偶然发现这个问题的其他人可能有不同的需求,所以如果您有实现它的读/写方式的想法,那也很棒。

4

1 回答 1

1

至少在 EF 6.1 之前,无法定义基本类型集合(例如字符串集合)。必须间接进行。

我见过的最好的方法是这个 SO answer

或者,您可以使用支持此功能的 NHibernate。例如,您可以看到这个 SO question

于 2014-06-10T10:06:22.487 回答