0

我正在尝试创建一个简单的 Lightswitch 应用程序,其中包含一个表(“事务”实体)和一个视图(“发票”实体)。在这种情况下,Invoices 视图是通过 Transactions.InvoiceId 分组从 Transactions 表生成的。然后视图通过一对多关系引用表,这样 Invoice 在 Transaction 上显示为导航属性,而 Transactions 在 Invoice 上显示为导航属性。一切都 100% 完美运行,直到我尝试创建新事务并保存它,此时 Lightswitch 中的验证规则会触发“发票:引用的发票未设置或不再存在”。发票不存在是正确的——我要保存的交易将是新发票的第一个。

目前,我正在通过处理 Saving 事件并在我自己的 DataWorkspace 中手动创建 Transaction 来规避这个问题,但这感觉就像是 hack,并且不允许我针对我的 Transaction 实体中的其他字段使用 Lightswitch 的内置验证。

有什么办法可以告诉 Lightswitch 跳过对 Invoice 导航属性的验证,但保持其他属性不变?或者还有其他方法可以完成我想做的事情吗?

4

1 回答 1

0

您提到的 Saving 事件是 Invoice_Saving 方法?

您的关系为发票提供了“交易”导航属性。这就是您需要创建新交易的方式,在 Incoice_Saving 方法中,添加:

VB: Me.Transactions.AddNew()

C#:this.Transactions.AddNew();

如果您这样做,则发票尚未保存并不重要,在保存过程中将全部处理。

于 2012-06-30T06:45:08.147 回答