c# - 如何使用 IEnumerable 作为导航属性而不是 IList
问题描述
如何IEnumerable
用作导航属性,我不想为客户端开发人员公开一个列表并给他额外分心、不受欢迎的功能,例如Clear(),CopyTo()
.
所以我做了以下事情:
private readonly List<WorkTime> _assignedWorkTimes;
public virtual IEnumerable<WorkTime> AssignedWorkTimes { get => _assignedWorkTimes; }
但是当我EF Power tool
用来渲染模型时,我看不到两个实体之间的关系。
注意:我只使用外键建立单向关系(基于DDD
建议)Worktime
以方便数据操作。
解决方案
为了创建一对多关系,'many' 属性必须实现 ICollection。另请参阅https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-4.0/dd468057(v=vs.100)。
或者,换句话说,EF6 无法实现您想要的。
推荐阅读
- kotlin - 改变一些数据的某个属性的值,但是tableview没有更新
- python - 试图找到一种方法来删除或显示与 python 的类似引用
- node.js - 根据键值从 Redis 查询
- shell - 如何在正常运行时间后 1 小时终止 ec2 实例
- javascript - 使用 Laravel 时如何将参数传递给 jQuery 函数
- php - 如何在 Laravel 中修复意外的 '->' (T_OBJECT_OPERATOR)"?
- postgresql - 通过在 postgresql 上声明变量来选择查询
- android - 按下按钮时在 TextView 上显示 LatLng
- asp.net - Angular js:使用 ng-class 过滤数据
- three.js - 为什么在导出为 GLTF 时,blender rigged 动画会变形?