C#,Winform绑定实体框架(Entity Framework)的实体,如何去掉或隐藏导航属性? 200

以Northwind数据库为例,要绑定的是Employees表,但是因为它与Order表有外键关系,所以在绑定到Datagridview的时候,后面Order这样的列,这... 以Northwind数据库为例,要绑定的是Employees表,但是因为它与Order表有外键关系,所以在绑定到Datagridview的时候,后面Order这样的列,这是不希望看到的,有什么办法可以去掉或者隐藏?要求是不用手动去设置每一个字段。 展开
 我来答
tgghfbf
2013-07-23 · TA获得超过381个赞
知道小有建树答主
回答量:272
采纳率:50%
帮助的人:202万
展开全部
明白您的意思了,您是想不加载外键的类的那些字段是吗?那简单啊,在设计模型时,就选择不延迟加载就可以了。举例:from c in edm.Employees where c.ID==1 select c;这样就只加载Employees表的数据了。

另外,如果一个表里有特别大的字段,可以把一个表映射成两个实体,如一个新闻表的标题和内容,内容这个大字段仅在看新闻时才加载才比较实际。
更多追问追答
追问
NorthwindEntities en = new NorthwindEntities();
var v = from arr in en.Employees
select arr;
foreach (Employee em in v as IEnumerable)
我这样还是一样的效果,哪里错了?
追答
foreach (Employee em in v)

{
先输出试试;
}
你是不是在设计模型的时候就是延迟加载的呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ghotos
2013-07-23 · TA获得超过280个赞
知道小有建树答主
回答量:435
采纳率:0%
帮助的人:363万
展开全部
你是直接用datatable作为数据集绑定到datagridview的么?可以在绑定完以后,把这一列的visable设为false,不过也是需要一列一列去设置的。或者就是查询的时候,不需要的列就不查询出来
更多追问追答
追问
似乎等于是没回答。
追答
你总归还是要有个地方告诉程序你哪列要展示,哪列不展示,要么制定规则,要么就是一列一列设置,你还想要怎么样?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2013-09-04 · TA获得超过216个赞
知道小有建树答主
回答量:244
采纳率:0%
帮助的人:165万
展开全部
用反射,如果是复杂属性就过滤掉。放在一个通用类里,写上想要的各种过滤方法,返回一个新的匿名对象的集合。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f4e2724
2013-07-24 · TA获得超过298个赞
知道小有建树答主
回答量:372
采纳率:0%
帮助的人:171万
展开全部
NorthwindEntities en = new NorthwindEntities();
var v = from arr in en.Employees
select new {
    arr.Id,    // 填写Employees的显示列
    arr.Name
}
更多追问追答
追问
这样就是手动去设置了。
追答
这样是不用手动设置的,已经测试过了!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-23
展开全部
直接不绑定到字段不得了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式