【发布时间】:2015-05-16 10:39:33
【问题描述】:
我在两个表之间有这样的一对一关系:
人员:身份证、名字、姓氏、出生日期
人员信息:人员 ID、地址、电子邮件、手机
我想在数据网格视图中显示用户的名字、姓氏和电子邮件, 当我试图将 person 对象与数据网格视图数据源绑定时,像这样
grdPerson.DataSource = objPerson;
我得到了所有的人员对象列,但是我得到一个空的人员信息对象列,那么我如何显示电子邮件和移动字段?
【问题讨论】:
-
你使用 Linq 吗?是数据库中的关系(主键和外键)吗?您可以使用 POCO 类,还是扩展您当前的类 Person?或者,最好的解决方案可能是在数据库上创建视图,其中包含您需要的所有字段,并使用该视图来填充 DataDrid(我在我的解决方案中使用它)。
-
我正在使用 ADO.net 实体模型,我正在处理自动生成的代码。
-
我会尝试做一些事情,比如“e.personinfo.mobile”。如果失败,您可以使用临时的“POCO”类,它将每个字段单独映射(创建一个类,将 Person 和 Person Info 中的所有字段作为原始类型)。改变,你可以使用视图。在 db 中加入该关系,并在您的应用程序视图中使用(主对象和字典作为一个 obj)。我在 Reporting Services 中使用了这种方法(网络数据网格非常智能)。
-
我不想使用 POCO,我认为将这两个表放在一个表中是最好的解决方案,或者创建一个视图来连接这两个表,你怎么看?
-
在您的情况下,两种解决方案都很好。如果加入这些表不会破坏规范化规则,您可以将它们加入一个表。如果加入它们会破坏规范化规则,请使用视图。