, . ( ), . , .
, , .
class Foo
{
public Guid FooId { get; private set; }
public List<Bar> Bars { get; set; }
private bool Deleted { get; set; }
public Foo()
{
this.FooId = Guid.Empty;
this.Deleted = false;
Bars = new List<Bar>();
}
public Foo(Guid fooId)
{
this.Deleted = false;
this.FooId = fooId;
LoadFromDatabase();
Bars = new List<Bar>();
LoadBarsFromDatabase();
}
private void LoadFromDatabase()
{
}
private void LoadBarsFromDatabase()
{
foreach (var barData in barIdsLinkedToFooTable.Rows)
{
Bars.Add(new Bar(this, barData["barId"]));
}
}
public void SaveToDatabase()
{
foreach (var bar in Bars)
{
bar.SaveToDatabase();
}
}
public void Delete()
{
this.Deleted = true;
}
}
class Bar
{
public Guid BarId { get; private set; }
public Foo ParentFoo { get; set; }
public List<Baz> Bazs { get; set; }
private bool Deleted { get; set; }
public Bar(Foo parentFoo)
{
this.BarId = Guid.Empty;
this.ParentFoo = parentFoo;
this.Bazs = new List<Baz>();
this.Deleted = false;
}
public Bar(Foo parentFoo, Guid barId)
{
this.Deleted = false;
this.BarId = barId;
this.ParentFoo = parentFoo;
LoadFromDatabase();
Bazs = new List<Baz>();
LoadBazsFromDatabase();
}
}