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

首先是 System.Linq.Queryable 上的扩展方法。

于 2012-09-27T18:53:27.483 回答
0

我相信,您正在尝试找到一种方法first()来满足ObjectSet<viewType>您的真正需求。viewType所以这就是你需要的。

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