首页 > 解决方案 > 如何使用 IEnumerable 作为导航属性而不是 IList

问题描述

如何IEnumerable用作导航属性,我不想为客户端开发人员公开一个列表并给他额外分心、不受欢迎的功能,例如Clear(),CopyTo().

所以我做了以下事情:


 private readonly List<WorkTime> _assignedWorkTimes;

 public virtual IEnumerable<WorkTime> AssignedWorkTimes { get => _assignedWorkTimes; }

但是当我EF Power tool用来渲染模型时,我看不到两个实体之间的关系。

注意:我只使用外键建立单向关系(基于DDD建议)Worktime以方便数据操作。

在此处输入图像描述

标签: c#entity-frameworkentity-framework-6domain-driven-designienumerable

解决方案


为了创建一对多关系,'many' 属性必须实现 ICollection。另请参阅https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-4.0/dd468057(v=vs.100)

或者,换句话说,EF6 无法实现您想要的。


推荐阅读