私はフィルムデータベースからエンティティをモデル化しようとしています。私は映画のリストを持っている取締役と取締役のリストを持っている映画を持っています。私が作ったオブジェクトは、このようなものです:相互依存関係を持つオブジェクトを開始する
public class eFilm
{
//Basic properties
public int ID { get; private set; }
public string Title { get; set; }
public DateTime? Date { get; set; }
public List<eDirector> Directors = new List<eDirector>();
public List<eActor> Actors = new List<eActor>();
public eMedia_Type Type;
/// <summary>
/// Initiate a new Films from Films_Data object
/// </summary>
/// <param name="Film">Films_Data object from which to initiate a new film</param>
public eFilm(Film Film)
{
this.ID = Film.ID;
this.Title = Film.Title;
this.Date = Film.Date;
this.Synopsis = Film.Synopsis;
//Add directors
Film.Films_Directors.Select(fd => fd.Director).ToList<Director>().ForEach(d => this.Directors.Add(new eDirector(d)));
//Add actors
Film.Films_Actors.Select(fa => fa.Actor).ToList<Actor>().ForEach(a => this.Actors.Add(new eActor(a)));
//Add type
this.Type = new eMedia_Type(Film.Media_Type);
}
}
public class eDirector
{
public int ID { get; private set; }
public string Name{ get; set;}
public List<eFilm> Films = new List<eFilm>();
public eDirector(Director Director)
{
this.ID = Director.ID;
this._Name = Director.Name;
_Number_Of_Films = Director.Films_Directors.Select(d => d.Film).ToList<Film>().ForEach(f => this.Films.Add(new eFilm(f)));
}
}
私は簡潔にするため、いくつかのものを省略しました。これは映画にディレクターを追加して映画にディレクターを追加する映画にディレクターを追加するので、私はスタックのオーバーフローをもたらします。 私はこれをモデル化する方法を理解できませんが、明らかにこれを行うための何らかの方法が必要ですエンティティフレームワークは...
進める方法についてのアドバイスは大歓迎です。
EDIT:必要な情報があります。私は、永続性のためにリポジトリに渡す前に、Linq-to-SQLによって生成されたクラスの上にレイヤを追加して、データのチェックをいくつか実行できるようにしています。私はC#とASP.NET MVCを使用しています。
Btwの場合、Linq2Sqlで生成されたクラスでは、部分的に実装されているため、追加のチェックを行うことができます。 –
ありがとう、それは私が本来行っていたことです。すべての物件を複製して名前をつけることが本当に苦しいものになったので、私はそれから離れると思った。他の方法がない場合は、私はそれに戻るかもしれません... –