-2

たとえば、との2つのデータベーステーブルがあるとtb1tb2ます。

[tb1]
id      primary key
name
lastname

[tb2]
id      primary key
tb1_ID  foreign key
phone_no
degree
grade


関係tb1は、表2の複数のレコードを保持する場合があります。すなわち:1対多の関係。
この関係では、tb11つの列のすべての列を保持するエンティティが必要ですtb2(たとえば、ph番号のみ)。
可能な限り最も簡単な方法を提案してください。

4

3 に答える 3

1

最も簡単な方法-データベースビューを作成し、それを新しいエンティティとしてマップします。より良いがより複雑な方法-これらのテーブルを直接マップし、LINQクエリでプロジェクションをカスタムタイプに使用します。

var data = context.TB2s.Select(t => new TBViewModel
                                        {
                                           Id = t.TB1.Id,
                                           Name = t.TB1.Name,
                                           LastName = t.TB1.LastName,
                                           PhoneNumber = t.PhoneNumber
                                        });
于 2012-04-16T10:48:12.137 に答える
1

正しく動作するかどうかわからない

試してみてください

Public class tb1
{
public int id{get; set;}
public string name{get; set;}
public string lastName{get; set;}
[NotMapped]
public List<string> relatedPhoneNo{get; set;}
}




var data = db.master.Select(t1 => new tb1
            {
                id = t1.id,
                name = t1.name,
                lastName = t1.lastName,
                relatedPhoneNo= (from t2 in db.tb2
                       where t2.id==t.id
                      select t2.city ).ToList()
            }); 
于 2012-04-16T11:42:52.733 に答える
-1

データを含む既存のデータベースが本当にありますか、それともEF Code Firstで、既存のデータベース設計のように見えるデータベースを生成するだけですか?

EFは、MVC3モデルで2つの別々のクラスを作成するだけで、そのようなデータベースを作成できます(タグに基づいてMVC3を実行していると仮定します)。

学生とコースを使用した例を次に示します。

 public class Student
{

    public int Id { get; set; }

    public string Name{ get; set; }

    //This should make the 1 to many relationship to the second table 
    public List<Course> Courses { get; set; }

}

 public class Course
{

    public int Id { get; set; }

    public string CourseName{ get; set; }

}

この場合、EF Code Firstは、Coursesテーブルと1対多の関係を持つStudentテーブルを作成します。

結果のデータベースは次のようになります。

[Student]
id      primary key
name

[Courses]
id      primary key
CourseName
Student_ID  foreign key
于 2012-04-16T10:54:46.927 に答える