C#,Winform绑定实体框架(Entity Framework)的实体,如何去掉或隐藏导航属性? 200
以Northwind数据库为例,要绑定的是Employees表,但是因为它与Order表有外键关系,所以在绑定到Datagridview的时候,后面Order这样的列,这...
以Northwind数据库为例,要绑定的是Employees表,但是因为它与Order表有外键关系,所以在绑定到Datagridview的时候,后面Order这样的列,这是不希望看到的,有什么办法可以去掉或者隐藏?要求是不用手动去设置每一个字段。
展开
5个回答
展开全部
明白您的意思了,您是想不加载外键的类的那些字段是吗?那简单啊,在设计模型时,就选择不延迟加载就可以了。举例: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)
{
先输出试试;
}
你是不是在设计模型的时候就是延迟加载的呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是直接用datatable作为数据集绑定到datagridview的么?可以在绑定完以后,把这一列的visable设为false,不过也是需要一列一列去设置的。或者就是查询的时候,不需要的列就不查询出来
更多追问追答
追问
似乎等于是没回答。
追答
你总归还是要有个地方告诉程序你哪列要展示,哪列不展示,要么制定规则,要么就是一列一列设置,你还想要怎么样?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用反射,如果是复杂属性就过滤掉。放在一个通用类里,写上想要的各种过滤方法,返回一个新的匿名对象的集合。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
NorthwindEntities en = new NorthwindEntities();
var v = from arr in en.Employees
select new {
arr.Id, // 填写Employees的显示列
arr.Name
}
更多追问追答
追问
这样就是手动去设置了。
追答
这样是不用手动设置的,已经测试过了!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-23
展开全部
直接不绑定到字段不得了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询