Entity Framework で WCF サービスを作成しました。
私は 2 つのテーブルを持っています: Theatres と Locality。劇場の外部キーとしての局所性。
私の方法:
public theater[] GetTheaters()
{
using (Entities context = new Entities())
{
return context.theater.ToArray();
}
}
演劇の授業で、"public virtual locality locality { get; set; }" から "virtual" キーワードを削除する必要があります。そうしないと、CommunicationException が発生します。
しかし、それを行うと、劇場のリストを取得できますが、地域は null です...
どうすれば地域を取得できますか?
ありがとう
私のモデルクラス(他のエンティティもあります):
public partial class locality
{
public locality()
{
this.theater = new HashSet<theater>();
}
public int idLocality { get; set; }
public int npa { get; set; }
public string locality1 { get; set; }
public ICollection<theater> theater { get; set; }
}
public partial class theater
{
public theater()
{
this.session = new HashSet<session>();
}
public int idTheater { get; set; }
public string name { get; set; }
public string address { get; set; }
public int idLocality { get; set; }
public double latitude { get; set; }
public double longitude { get; set; }
public int seats { get; set; }
public string phone { get; set; }
public string email { get; set; }
public bool threeD { get; set; }
public locality locality { get; set; }
public ICollection<session> session { get; set; }
}
これが私が得るエラーです:
「タイプ 'locality' のオブジェクト グラフにはサイクルが含まれており、参照追跡が無効になっている場合はシリアル化できません。
編集 :
私が見つけた解決策:
私の地方クラスでは、劇場のコレクションがありました。
次のように「プライベートをセッターに追加する必要がありました:
"パブリック ICollection シアター { get; プライベート セット; }"
動作しますが、まだ問題があります。地域エンティティから劇場にアクセスできなくなりました。(もはや双方向ではない)