2

エンティティフレームワークで生成されたモデルに存在するデータベースビューのコンテンツに動的に適応するレポート画面を作成しようとしています。

このコードを使用しているエンティティを取得するには、次のようにします。

var view = context.GetType().GetProperty(viewName).GetValue(context, null);

このコードは、ObjectSet<viewType>私のニーズの一部を満たすを返します。

次に、列を取得できるように、ビュータイプのプロパティを取得する必要があります。

私はそのようなものを使おうとしました:

var methodInfo = view .GetType().GetMethod("First");
var properties = methodInfo.ReturnType.GetProperties(BindingFlags.Public | BindingFlags.Instance);

しかし、それは「最初の」方法を見つけられず、私はこれをどのように機能させることができるかについての助けをどこで見つけることができるか正確にはわかりません。

4

3 に答える 3

0
var gtype = view.GetType().GetGenericArguments()[0];

ビューがObjectSet<FooBars>の場合

gtypeはFooBarsになります

次に、gtypeでGetPropertiesを呼び出すことができます。

于 2012-09-27T18:56:43.453 に答える
0

あなたは本当に欲しいときの方法first()を手に入れようとしていると私は信じています。だからこれはあなたが必要なものです。ObjectSet<viewType>viewType

var methodInfo = view.GetType().GetGenerericArguments()[0].GetMethod("First");
于 2012-09-27T18:52:33.240 に答える
0

1つ目は、System.Linq.Queryableの拡張メソッドです。

于 2012-09-27T18:53:27.483 に答える