EF Fluent Mapping - 映射另一个表中的集合字段

时间:2014-05-29 15:39:45

标签: c# entity-framework entity-framework-6.1

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

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

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

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

我希望从所有相关TableB实体的Code字段填充BCodes。我知道我可以使用数据库中的视图和其他黑客来完成此任务,但这会破坏关注点的分离。这可能是使用EF,还是我必须只使用一个字符串属性映射TableB实体?

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

1 个答案:

答案 0 :(得分:1)

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

我见过的最好方法是this SO answer

或者您也可以使用支持此功能的NHibernate。例如,you can see this SO question