1

SQLServerに1つと2つ目のテーブルが2つMessagesありますMessage Bodies。2つの間にFK関係がありMessagesます(の列(Message ID)への主キーMessage Bodies

Message BodiesMessage ID重複がないように、で一意のインデックスが指定されています。

すべてのデータベース作業の目標は、1または0から1へのマッピングを保証することです。

          +-------------------------+           +------------------------------+
          |  Messages               |           | Message Bodies               |
          |-------------------------|           |------------------------------|
          | PK                      |+----+     | PK                           |
          | Message Header          |     +----+| Message ID                   |
          |                         |           | Message Body                 |
          +-------------------------+           +------------------------------+

これをデータソースとしてLightswitchに追加すると、これらの間に1対多の関係が追加されます。

多重度設定が無効になっているので、これを変更するにはどうすればよいですか?

4

1 に答える 1

1

この方法で SQL データをモデル化すると、LightSwitch は 1 対 0..1 の関係を認識します。

CREATE TABLE [Messages]
(
    PK int IDENTITY(1,1) not null,
    MessageHeader varchar (50) not null,
    PRIMARY KEY (PK)
)
GO

CREATE TABLE [MessageBodiesWithPK]
( 
    PK int not null,
    MessageBody varchar(50) null,
    PRIMARY KEY (PK),
    FOREIGN KEY (PK) REFERENCES [Messages] (PK)
)
GO

スキーマを変更できない場合は、LSML ファイルを手動で編集する必要があります。これはサポートされていませんが、過去にこの修正を使用して、データ デザイナーが意図を正しく推測していない領域を修正しました。具体的には、SQL ビューの暗黙のキーを修正しました。AssociationEnd 要素の Multiplicity 属性を探す必要があります。「Many」から「One」に設定します。

明確にするために: LSML を手動で編集することは最後の手段だと考えています。間違いを犯すとアプリ全体が破損する可能性があるため、これを行う前に必ず作業内容を確認してください (LSML は文書化されていないと言いましたか?)。とにかく、試してみたい場合は、プロジェクトの Data ディレクトリを見てください。

于 2011-09-12T04:44:13.253 に答える