最初に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 MemberID
Favorite クラスにを追加するだけですか? エンティティ フレームワークは自動的にそれを外部キーに関連付けますか?