0

テーブル名が入力されたリストボックスがあります。リストボックスの行をクリックして、そのテーブルからすべてのレコードを返し、datagridview にバインドできるようにしたいと考えています。古き良き SQL を使用すると、これは簡単なことです。Entity Framework 4.3.1 で同じことをしようとするのは別の問題です。

たとえば、以下のコードで「get_picklist_names_v」を変数として表す方法はありますか?

static class EfHelper
{
    public static EfEntities CreateContext()
    {
        EfEntities context = new EfEntities();
        return context;
    }
}

using (var context = EfHelper.CreateContext())
{
    IList list = context.get_picklist_names_v.ToList();

    lboPicklist.DataSource = list;
    lboPicklist.DisplayMember = "name";
}
4

2 に答える 2

0

Entity Frameworkは、これを実現するための最良のツールではありません。Entity Sqlを試すこともできますが、問題は、それを動的に使用するには、結果をでキャプチャする必要があることIEnumerable<DbDataRecord>です。ADataGridViewはそのように表示しません。

TableAdapterとsqlステートメントでDataSetを入力することほど、これに便利な方法はありません。もし私があなたなら、私はそれに固執するでしょう。

于 2012-12-17T08:21:51.490 に答える
0

Entity Framework は型を使用して SQL を抽象化し、最善を尽くすため、各サーバー フレーバー (Oracle、SQL Server、MySQL など) ごとに sql を記述する必要はありません。それがORMの機能です...

ジェネリック型に慣れている場合、Entity Framework で同じことを行うのは非常に簡単です。

それはまさにあなたが探しているものではありませんが、次の記事からいくつかのヒントを見つけることができるかもしれません:

Entity Framework を使用したリポジトリ パターン

于 2012-12-16T21:01:33.500 に答える