2009-09-20 108 views
1

如果我有一个Customer类并且想要添加一个Orders属性,该属性将返回此客户的所有订单,那么Orders属性的适当类型是什么?什么是lazyloaded属性的适当类型?

一些可能的选择,我能想到的:

  • 列表
  • 的IList
  • IEnumerable的

回答

1

ReadOnlyCollection <订购>或IEnumerable的<订购>都是很好的选择。如果您返回IEnumerable <T>,请确保用户不能将返回的对象转换为其他类型并进行修改(或者,如果他们这样做,他们将不会修改Customer类的状态)。

+1

我该如何确保使用不能转换为其他类型? – desautelsj 2009-09-21 01:06:59

+0

(意思是输入:“user”不是“use”!!!) – desautelsj 2009-09-21 01:07:46

3

通常最不可能的类型是可取的。如果你可以逃脱IEnumerable - 做到这一点。然后IList <>等等。列表类型越基本,越容易在应用程序的生命中与类一起工作。

+0

Orders属性将通过调用repository.Find (x => x.CustomerId == this.CustomerId)来填充,它返回一个IList。因此,使用IList作为Orders属性的类型是否合理? – desautelsj 2009-09-21 00:45:23

相关问题