代码之家  ›  专栏  ›  技术社区  ›  Anyname Donotcare

如何使用IEnumerable而不是IList作为导航属性

  •  0
  • Anyname Donotcare  · 技术社区  · 6 年前

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

    所以我做了如下工作:


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

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

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

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  0
  •   stephanV    6 年前

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

    或者,换句话说,你想要的东西在EF6中是不可能的。