0

私は最初にEFコードを扱っています。多対多関連テーブルを定義する 2 つのクラスがあります。

public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string Email { get; set; }

    public virtual ICollection<Habit> Habits { get; set; }
}



public class Habit
{
    [Key]
    public int HabitId { get; set; }

    public virtual ICollection<UserProfile> Users { get; set; }
}

現在のユーザーのすべての習慣をデータベースから選択する必要があります。私は c# に非常に慣れていません。問題は、複雑なラムダ式の操作方法を理解できないことです。私はそれを試しました:

context.Habits.Where(habit => habit.Users
                .Where(user=>user.Email==User.Identity.Name)).ToList()

しかし、それは間違っています。私のラムダベースのクエリを修正してください。ありがとう。

4

3 に答える 3

0

エンティティから特定のプロパティ ( )を選択したいので、私の意見では、最も簡単な方法は次のように使用することです。HabitsUserProfileSelect

var habits = context.UserProfiles
    .Where(user => user.Email == User.Identity.Name)
    .Select(user => user.Habits)
    .SingleOrDefault(); // I assume here that the Email is unique
于 2013-07-12T20:08:00.417 に答える