0

私はコースワークのプロジェクトを行っています。データベースファーストエンティティフレームワークを使用しており、DBContext クラスを次のように取得しています。

public partial class StudentDBEntities : DbContext
    {
         public DbSet<LoginDetail> LoginDetails { get; set; }
        public DbSet<StudentDetail> StudentDetails { get; set; }
        public DbSet<UserFriend> UserFriends { get; set; }
}

次に、このモデルを使用してビューを渡すために、以下のようにモデル オブジェクトを作成しました。

public class ViewStudentDetail
    {    
        public StudentDetail Student { get; set; }
        public UserFriend Friends { get; set; }

    }

これがデフォルトで作成された私の StudentDetail クラスです

public partial class StudentDetail
    {
        public StudentDetail()
        {
            this.UserFriends = new HashSet<UserFriend>();
        }
        public string StudentName { get; set; }
        public string UnivName { get; set; }
        public string City { get; set; }
        public string Username { get; set; }
        public string Password { get; set; }
        public string EmailId { get; set; }

        public virtual ICollection<UserFriend> UserFriends { get; set; }
    }

私のビューでは、友人のシナリオを見つけました。渡されたテキスト ボックスの値は、Post メソッドに ViewStudentDetail.Friends.username. です。

私の問題は、DbContext オブジェクト (登録時にデータベースに既に保存されている) から指定されたユーザー名を持つ StudentDetails をモデル オブジェクトに割り当てたいことです。

  StudentDBEntities DbAccess = new StudentDBEntities();
 ViewStudentDetail Studentdetails = new ViewStudentDetail();
    Studentdetails.Student = DbAccess.StudentDetails .Find(username);

この割り当ては機能しておらず、null を割り当てています。モデル オブジェクトに db の値を取得する方法を教えてください。また、各属性をモデルに割り当てる必要がある場合は、db オブジェクトからフェッチする構文を教えてください。

4

1 に答える 1

0

DbSet.Find ()メソッドは、PRIMARY KEY の一致のみを検索します。エンティティのすべてまたはすべてのプロパティを検索するわけではありません。

私はあなたがこのようなものを探していると思います:

ViewStudentDetail.Student = DbAccess.StudentDetails.FirstOrDefault(student => student.Username == username);

そうでない場合は、質問にソース コードを追加してください。具体的には、生成されたエンティティ クラスを含めてください。

于 2013-04-17T00:18:55.593 に答える