私はEFオブジェクトを持っています:
public class User
{
[Key, Column("userid", TypeName = "int")]
public Int32 UserId { get; set; }
[Column("username", TypeName = "varchar")]
public String UserName { get; set; }
[Column("password", TypeName = "varchar")]
public String Password { get; set; }
[Column("name", TypeName = "varchar")]
public String Name { get; set; }
[Column("surname", TypeName = "varchar")]
public String Surname { get; set; }
[Column("email", TypeName = "varchar")]
public String Email { get; set; }
[Column("dob", TypeName = "datetime")]
public Nullable<DateTime> Dob { get; set; }
[Column("notes", TypeName = "nvarchar")]
public String Notes { get; set; }
[Column("masterentity", TypeName = "varchar")]
public String MasterEntity { get; set; }
[Column("propertyid", TypeName = "int")]
public Nullable<Int32> PropertyId { get; set; }
[Column("boardmember", TypeName = "bit")]
public Boolean BoardMember { get; set; }
[Column("occupiesunit", TypeName = "bit")]
public Boolean OccupiesUnit { get; set; }
[Column("systemuser", TypeName = "bit")]
public Boolean SystemUser { get; set; }
[Column("isactive", TypeName = "bit")]
public Boolean IsActive { get; set; }
#region Foreing Keys
[ForeignKey("MasterEntity")]
public virtual Entity CurrentMasterEntity { get; set; }
#endregion
}
クライアント側では、次のようにモデルを JSON オブジェクトにシリアル化しようとしています。
var jsonUser = @(Html.Raw(Json.Encode(this.Model)));
次のエラーが表示されます。
A circular reference was detected while serializing an object of type ....
私が気付いているのは、Foreing Keys Fluent API を削除すると
[ForeignKey("MasterEntity")]
public virtual Entity CurrentMasterEntity { get; set; }
その後、完璧に機能します。そのため、他のエンティティと関係のあるエンティティまたはオブジェクトは、JSON を使用してシリアル化できないようです。
誰でもこれを解決する良いアプローチを持っていますか? EF 5.0 はこの問題を解決しますか?
どうもありがとう。