代码之家  ›  专栏  ›  技术社区  ›  Tim Murphy

在域模型中使用哪个.Net集合接口?

  •  0
  • Tim Murphy  · 技术社区  · 15 年前

    Northwind Schema
    (来源: techmatica.com )

    顾客

    订单包含订单详细信息的集合。可以将OrderDetail添加到集合中。

    雇员拥有多个地区。员工可以属于0个或多个区域,但TerritoryId必须是唯一的。

    2 回复  |  直到 6 年前
        1
  •  2
  •   Thomas Levesque    15 年前

    使用 ICollection<T> ReadOnlyCollection<T> 在那种情况下是混凝土类型)。你也可以用 IList<T> ,但它只添加了对按索引访问的支持,这在关系模型中通常没有实际意义。

    ISet<T> (假设您使用的是.NET 4.0)。实现此接口的类不允许重复项。

        2
  •  1
  •   Philip Rieck    15 年前

    需要更多的信息。例如,为什么Orders collection是只读的?如何使用这些集合?这里有很多变量。

    关键是,将它们公开为满足您需要的最简单的接口。不要使用 ICollection<T> IEnumerable<T> 如果你发现自己想 IList<T> 按索引添加或获取项。

    例如,如果通过MVVM创建了一个表示模型,我建议您使用 BindingList . 如果你只对订单做求和运算,我建议你 . 等

    推荐文章