1

ASP.NET MVC 3 と Entity Framework 5.0 で大学に関するさまざまな情報を表すモデルがあります。モデルには、TrendModel と呼ばれる別のモデルの ICollection があります。このコレクションは、私が何をしても、MVC によって保存/バインドされることは決してないようです。

このコレクションを実行時に (データベースから取得した後) 手動で何かに設定すると、コレクションはもちろん null ではなくなりますが、設定してデータベースに保存すると、傾向は常に null になります。データベースから取得します。

大学モデル:

public class UniversityModel
{
    [Key]
    public string univ_id { get; set; }

    public string ipeds_id { get; set; }
    public string name { get; set; }
    public bool religious { get; set; }

    #region Location Information

    public string city { get; set; }
    public string state { get; set; }
    public string urbanization { get; set; }
    public double latitude { get; set; }
    public double longitude { get; set; }

    #endregion

    public ICollection<TrendModel> trends { get; set; }
}

トレンドモデル:

public class TrendModel
{
    [Key]
    public string id { get; set; }
    public ushort year { get; set; }
    public uint? capacity { get; set; }
    public uint? rate { get; set; }
    public uint? meals { get; set; }
    public bool? forProfit { get; set; }
    public bool? control { get; set; }
    public string degree { get; set; }
    public bool? landgrant { get; set; }
    public bool? athletic { get; set; }
    public string calendar { get; set; }
    public bool? required { get; set; }
}

関連性があるかどうかはわかりませんが、トレンドを空のリストに設定する UniversityModel のコンストラクターを入れると、トレンドは null ではなくなり、空のリストになります。

これはモデルバインディングの問題ですか、それとも投稿の問題ですか? MVC と ASP.NET についてはまったくの初心者です。

4

2 に答える 2

0

トレンド モデルに外部キーが含まれていません。クラスに追加univ_idしてみてください。TrendModel

public class TrendModel
{
    [Key]
    public string id { get; set; }
    .
    .
    .
    [ForeignKey("univ_id")]
    public string univ_id   {get;set;}
}
于 2012-12-06T18:07:50.403 に答える
0

結局のところ、トレンドに遅延読み込みを強制するだけで問題が修正されたため、プロパティは次のようになります。

public virtual ICollection<TrendModel> trends { get; set; }
于 2012-12-06T22:23:55.010 に答える