我有一个像实体框架导航属性循环问题虽然WCF
public class User
{
[Key]
public long UserId { get; set; }
[Required]
public String Nickname { get; set; }
public virtual ICollection<Group> Memberships { get; set; }
}
public class Group
{
[Key]
public long GroupId { get; set; }
[Required]
public String Name { get; set; }
public virtual ICollection<User> Members { get; set; }
}
public class DataContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Group> Groups { get; set; }
public DataContext()
{
Configuration.LazyLoadingEnabled = true;
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>()
.HasMany(u => u.Memberships)
.WithMany(t => t.Members)
.Map(x =>
{
x.MapLeftKey("UserId");
x.MapRightKey("GroupId");
x.ToTable("GroupMembers");
});
}
}
所有的模型使用测试控制台应用程序访问的实体的时候去罚款,但我需要通过WCF服务有这个,在这里我得到了此例外:
无法调用该服务。可能的原因:服务处于脱机状态或无法访问;客户端配置与 代理不匹配;现有的代理无效。有关更多详细信息,请参阅 的堆栈跟踪。您可以尝试通过启动一个新的代理来恢复,恢复 为默认配置,或刷新服务
我发现有这方面的工作的唯一办法是,在实体之一除去导航,因为具有双方的导航员都会导致无限循环。
有没有办法让这个工作没有删除导航仪?
你可以发布正在轰炸的服务方法的代码吗?另外,你可以发布你所得到的异常的细节吗? – Joon 2012-07-30 08:25:54