私は MVC で同じ問題を抱えていました。私が見つけた最良の解決策は、モデルで ForeignKey データ注釈を使用することでした。この方法では、関連するオブジェクトの ID のみを挿入し、後でオブジェクトを取得できました。次に例を示します。
public class Product {
public int ProductId { get; set; }
public string Name { get; set; }
// Add this field so I can add the entity to the database using
// category id only, no need to instantiate the object
public int CategoryId { get; set; }
// Map this reference to the field above using the ForeignKey annotation
[ForeignKey("CategoryId")]
public virtual Category Category { get; set; }
}
public class Category {
public int CategoryId { get; set; }
public string Name { get; set; }
}
さて、最後に WebForms を使用してから何年も経っているので、カテゴリ リストを DropDownList にバインドする方法がよくわかりません。おそらく次のようなものです。
<asp:DropDownList ID="CategoryId" SelectMethod="GetCategories" runat="server" />
また、Create メソッドまたは Update メソッドで製品を取得すると、CategoryId プロパティが適切に属性付けされた状態で提供され、EF のコンテキストを保存するだけで済みます。幸運を。