1

Visual Studio 2012 C# を使用しており、クラス間でデータを渡そうとしています。基本的に、私は2つのクラスを持っています。1 つのクラスはデータのクエリに使用され、もう 1 つのクラスはデータ (基本的には UI) の表示のみに使用されます。

ある種のデータコンテナに入れて渡す必要があると思います。しかし、私は現在学生であり、これを行う最善の方法がわかりません。

public List<string> GetDatabyID(int ID)
{
    var context = new Site.EFModel.SiteDBEntities();
    var query = context.db.Where(x => x.ID == ID).Select(x => new {x.ID, x.Name});
    List<string> dataContainer = query.ToList();

    return dataContainer;
}

UI では、このデータを GridView にマップして出力したいと考えています。私のコードは明らかに間違っています。dataContainer に int と string が含まれる場合、明らかにそれを List として返すことはできません。誰にもアイデアはありますか?ありがとうございます。

4

1 に答える 1

1

Anonymous Objectデータベース呼び出しの結果からを作成しています。Linq メソッドSelect:

Select(x => new {x.ID, x.Name});

結果を、選択した新しいオブジェクト (この場合は匿名オブジェクト) に射影します。これは、EF エンティティの 1 つのリストを作成して返すように設定する必要があります。

var query = context.db.Where(x => x.ID == ID).Select(
    x => new MyEntity {ID = x.ID, Name = x.Name});
List<MyEntity> dataContainer = query.ToList();
于 2013-02-19T18:32:27.347 に答える