我使用实体框架创建了 WCF 服务。
我有 2 张桌子:剧院和地方。局部性作为剧院的外键。
我的方法:
public theater[] GetTheaters()
{
using (Entities context = new Entities())
{
return context.theater.ToArray();
}
}
我必须在我的戏剧课上从“public virtual locality locality { get; set; }”中删除“virtual”关键字。否则,我会收到 CommunicationException。
但是当我这样做时,我得到了我的剧院列表,但地点是空的......
我怎样才能得到地方?
谢谢
我的模型类(我也有其他实体):
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 剧院 { 获取; 私人集合; }”
所以它有效,但我仍然有一个问题,我不能再从地方实体访问剧院了。(不再是双向的)