2012-06-29 2 views
0

Я пытаюсь создать простое приложение Lightswitch, которое содержит одну таблицу (сущность «Транзакция») и одно представление (сущность «Счет»). В этом случае представление «Счета-фактуры» создается из таблицы «Транзакции» путем группировки на Transactions.InvoiceId. Затем представление ссылается на таблицу через отношения «один ко многим», так что счет-фактура отображается как свойство навигации в транзакции, а транзакции отображаются как свойство навигации в счете-фактуре. Все работает на 100% отлично, пока я не попытаюсь создать новую транзакцию и не сохраню ее, и в это время правило проверки в Lightswitch срабатывает, говоря «Invoice: ссылочный счет-фактура либо не установлен, либо больше не существует». Правильно, что счет-фактура не существует - транзакция, которую я пытаюсь сохранить, будет первой из нового счета-фактуры.В Lightswitch, как мне добавить новый объект, который ссылается на представление?

В настоящее время я обхожу эту проблему, обращаясь к событию сохранения и вручную создавая транзакцию в своем собственном пространстве данных, но это похоже на взломать и не позволяет мне использовать встроенную проверку Lightswitch для других полей в мой объект транзакции.

Есть ли способ, которым я могу сказать Lightswitch, чтобы пропустить валидацию в свойствах накладной Invoice, но оставить остальные неповрежденными? Или есть другие способы, которыми я могу выполнить то, что я пытаюсь сделать?

ответ

0

Сохранение события, которое вы упоминаете, является методом Invoice_Saving?

Ваши отношения предоставляют свойство «Сделки» для счета-фактуры. Вот как вам нужно создать новую транзакцию, в методе Incoice_Saving, добавьте:

VB: Me.Transactions.AddNew()

C#: this.Transactions.AddNew();

Если вы сделаете это таким образом, не имеет значения, что счет еще не сохранен, все это будет учтено во время процесса сохранения.

+0

Проблема в том, что это первая транзакция для нового счета-фактуры - поэтому нет объекта-фактуры, к которому следует добавить транзакцию. Только после сохранения транзакции счет будет существовать в представлении «Счета-фактуры». – Mike

+0

Ты делаешь все для себя, делая это так. «обработка события сохранения и ручное создание транзакции в моем собственном пространстве данных» звучало так, будто это был метод Invoice_Saving. Поэтому, если вы используете метод Transaction_Saving, вы можете добавить эти две строки: «Dim newInvoice = New Invoice()», «Me.Invoice = newInvoice». По крайней мере, я думаю, вы можете. Я бы не стал делать это так, поэтому я не уверен на 100%. –

+0

Я пробовал это, но Sql жалуется на попытку вставить новую запись в представление. – Mike