VS 2012 LightSwitch: Updating datasource change FK from NOT NULL to NULL

Oft nutze ich Visual Studio LightSwitch 2012 um externe Datasources einzubinden. Also bereits bestehende Datenbanken bekommen mit LightSwitch ein GUI spendiert. Änderungen am Datenmodell sind in solchen Fällen nur eingeschränkt möglich.

Wenn dann nach dem erstmaligen einlesen der Metadaten einer Datenquelle dennoch ein Update erfolgt, also Änderungen in der DB durchgeführt- und diese nun VS LightSwitch bekannt gemacht werden, kann es zu unerwarteten Fehlern kommen.

In einem konkreten Fall konnte ich LightSwitch nicht dazu bewegen die Änderung einer FK-Beziehung zu erkennen.

In meinem Datenbank Modell hatte ich eine 1-n Beziehung in eine 0-n Beziehung geändert. Dazu wurde die foreign key column von “not NULL” auf “allow NULL” gerändert. Danach kam es dann beim speichern zu folgender Meldung:

Multiplicity conflicts with the referential constraint

in Role ‚XXX‘ in relationship ‚FK_Table2_XXX‘.

Because all of the properties in the Dependent Role

are non-nullable, multiplicity of the Principal Role

must be ‚1‘.

Der Fehler ist auch anderen widerfahren und wird in dein einschlägigen Foren diskutiert. Es gibt wohl derzeit nicht allzu viele Lösungswege, einer wäre die Datasource zu löschen und neu hinzuzufügen. Das ist aber ein no go wenn das Projekt viele Screens enthält. Die würden dann in Mitleidenschaft gezogen.

Ein User gab den Tipp die Common.lsml direkt zu verändern. Und das habe ich dann auch gemacht. Wie in diesem Screenshot dargestellt:

image