0

假设我有一个实体 Foo,它包含另一个实体 Bar 的列表。Bar 应该直接引用 Foo 吗?IE..

public class Foo
{
   public int Id {get; set;}
   public IList<Bar> Bars {get; set;}
}

public class Bar
{
   public int Id {get; set;}
   public Foo parentFoo {get; set;  //this will be set to an the Foo entity on creation
}

还是我只是在我的 Bar 类中省略了对 Foo 的引用?

我倾向于忽略该参考,但想知道这里的正确方法是什么?

4

4 回答 4

3

正确的做法是问“Bar 出于某种原因需要引用 Foo 吗?”这个问题。如果 Bar 不需要对它做任何事情,不要只是把引用放在那里。

于 2009-02-05T15:33:07.183 回答
2

这真的取决于例子。如果需要知道父级(例如,执行双向导航XmlNode等),那么您将需要它。这仅适用于单亲父母。

如果您只需要更改通知,那么事件可能会更加通用 - 特别是,事件允许多个“父母”不带偏见。

如果孩子不需要关心父母,那就不要打扰。

于 2009-02-05T15:34:48.537 回答
1

除非Bar对象绝对需要知道Foo它属于哪一个,否则不要使用它。

如果您认为有必要,请考虑如何处理Bar属于多个对象的对象Foo(完全可能使用您描述的类结构)。

于 2009-02-05T15:37:26.033 回答
1

我将支持“如果需要就做”的答案,但要警告说,双向耦合往往会导致代码脆弱。Bar仔细考虑从back to的引用是否Foo是绝对必要的。如果它可以完全避免,它应该。

于 2009-02-05T15:48:14.610 回答