最初にEntity FrameworkコードでMVC4を使用しています。
私は次のモデルを持っています:
public class Member {
public int ID { get; set; }
[Display(Name = "First Name")]
[Required(ErrorMessage = "Please enter a first name.")]
public string FirstName { get; set; }
[Display(Name = "Last Initial")]
[Required(ErrorMessage = "Please enter the last initial of your last name.")]
[MaxLength(1)]
public string LastName { get; set; }
[Display(Name = "City")]
[Required(ErrorMessage = "Please enter your city.")]
public string City { get; set; }
public virtual ICollection<Favorite> Favorites { get; set; }
}
public class Favorite {
public int ID { get; set; }
public String Type { get; set; }
public String Value { get; set; }
}
List<string> searchTerms私のコードはフロントエンドから検索語のリストを受け取っています。すべての検索用語について、すべてのメンバーのお気に入りの値を検索する必要があります。
次の LINQ ステートメントを使用しています。
return db.Favorites.Where(f => searchTerms.Any(s => f.Value.Contains(s))).ToList();
私の問題は、これは素晴らしいものを返すことList<Favorite>ですが、本当に必要なのはデータベースに関連付けられているメンバーの ID です。残念ながら、これはLINQで選択できるオプションではありません
return db.Favorites.Where(f => searchTerms.Any(s => f.Value.Contains(s))).Select(f => f.????) .ToList();
??? ID、Type、だけをくれますValue。のプロパティですがFavortie、エンティティ フレームワークが作成したデータベース テーブルには外部キー列がありますMember_ID。しかし、C# ではそれを選択できません。
私の質問は...どうすればいいですか?public virtual int MemberIDFavorite クラスにを追加するだけですか? エンティティ フレームワークは自動的にそれを外部キーに関連付けますか?