我正在尝试创建一个简单的Lightswitch应用程序,其中包含一个表(“Transaction”实体)和一个视图(“Invoice”实体)。在这种情况下,通过在Transactions.InvoiceId上进行分组,从“事务”表生成“发票”视图。然后,视图通过一对多关系引用该表,以便Invoice在Transaction上显示为导航属性,而Transactions在Invoice上显示为导航属性。一切都完美无缺,直到我尝试创建一个新的交易并保存它,此时Lightswitch中的验证规则触发“发票:引用的发票未设置或不再存在”。发票不存在是正确的 - 我试图保存的交易将是新发票中的第一个。
目前我正在通过处理Saving事件并在我自己的DataWorkspace中手动创建事务来解决这个问题,但这感觉就像是一个hack并且不允许我使用Lightswitch的内置验证来对抗我的其他字段交易实体。
有没有什么方法可以让Lightswitch在Invoice导航属性上跳过验证,但保留其他属性?或者还有其他方法可以完成我想要做的事情吗?
答案 0 :(得分:0)
你提到的Saving事件是Invoice_Saving方法吗?
您的关系为发票提供了“交易”导航属性。这就是你需要创建新事务的方法,在Incoice_Saving方法中添加:
VB:Me.Transactions.AddNew()
C#:this.Transactions.AddNew();
如果您这样做,发票尚未保存并不重要,在保存过程中将全部处理。