public class Foo
{
public List<Bar> Bars = new List<Bar>();
}
public class Bar
{
public Foo Foo;
}
public void Example()
{
var f = new Foo();
var b = new Bar();
f.Bars.Add(b);
b.Foo = f;
}
はコードb.Foo = f;
の最後の行を避けるためにどのような方法があり、そのバーのFooのプロパティが自動にのこのインスタンスで満たされるでしょうフー?私はFooとBarだけでなく、この属性が一般的である必要があるので、この例のような何らかの種類の属性について考えていた。https://documentation.devexpress.com/#CoreLibraries/clsDevExpressXpoAggregatedAttributetopic。
私の問題は次のとおりです:DevExpress AssociationAttributeの動作を模倣し、多くのリレーションシップで使用可能な組み込みの.net属性(または他の構造)がありますか?いいえ - 私はこれをどのように達成することができますか?
public class Foo
{
private readonly List<Bar> bars = new List<Bar>();
public IEnumerable<Bar> Bars => bars.Select(b => b);
public void AddBar(Bar bar)
{
bar.Foo = this;
bars.Add(bar);
}
}
そして今、あなたのコードは次のようになります:あなたはそれがジェネリックにする必要がある場合
public void Example()
{
var f = new Foo();
var b = new Bar();
f.AddBar(b);
}
をしかし、現実の世界でのビジネスクラスは、関係の多くを持って、顧客は、ショップ、アドレスを注文します。注文は製品、マネージャーなどにあり、それは非常に反復性があり、5 +リレーションシップへのこのアプローチを使用するのは間違いが多いです。 –
@BartekWójcik次に、ジョブのために既存のツールを使用します。例えば、[Entity framework](https: //msdn.microsoft.com/en-us/data/aa937723)。 – InBetween
efでトピックにキーワードや記事を渡してください。またはデータベースとは別のツールですか? –