灯开关:在新行上,拉入父信息

时间:2011-08-12 21:21:31

标签: vb.net silverlight visual-studio-lightswitch

我有一个包含两个表的数据库:人员和日志。

我创建了一个显示Person信息的Details页面,另外还包括相关的日志记录。所有这一切都是通过添加标准详细信息页面来完成的 - 而不是自定义编码等。

当用户点击绿色+为该人的日志添加一行时,我想自动填充一些列。为此,我打开了Log类并添加了以下内容:

Private Sub Log_Created()
     Me.Create_Date = Date.Now
End Sub

这很有效。但我也想提取与此人相关的卡号。最后,我的代码应该看起来像(伪):

Private Sub Log_Created()
     Me.Create_Date = Date.Now
     Me.CardNumber = SelectedPerson.CardNumber
End Sub

但是,我不确定如何在代码中完成此操作?

1 个答案:

答案 0 :(得分:4)

为了避免非规范化数据(http://en.wikipedia.org/wiki/Database_normalization),我会避免像这样设置数据模型。我采取

的方法
Person (Class)
 - Name
 - Address
 - ...
 - Cards (Collection of Card)

Card (Class)
 - CardNumber
 - Person 
 - Logs (Collection of Log)

Log (Class)
 - CreateDate
 - Card 

这将允许每人多张卡。如果你真的想做你想做的事,那你就走在了正确的轨道上。确保在Person和Log(一个人到多个日志)之间存在关系,并且您的代码将是

Private Sub Log_Created()
     Me.Create_Date = Date.Now
     Me.CardNumber = Person.CardNumber
End Sub