私は次のようなモデルを持っています
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サービスを介してこれを行う必要があります。ここで、次の例外が発生しました。
サービスの呼び出しに失敗しました。考えられる原因:サービスがオフラインであるか、アクセスできません。クライアント側の構成がプロキシと一致しません。既存のプロキシが無効です。詳細については、スタックトレースを参照してください。新しいプロキシを開始するか、デフォルト構成に復元するか、サービスを更新することで、回復を試みることができます
私がこれを機能させる唯一の方法は、エンティティの1つでナビゲーターを削除することです。これは、両側にナビゲーターがあると無限のループが発生するためです。
ナビゲーターを削除せずにこれを機能させる方法はありますか?