1

我在 SQL Server 一个Messages和第二个中有两个表Message Bodies。两者之间存在 FK 关系(主键在Messages列 ( Message ID) 上Message Bodies

Message Bodies具有指定的唯一索引Message ID以确保没有重复。

所有数据库工作的目标是确保一对一的映射。

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

当我将它作为数据源添加到 Lightswitch 中时,它会在它们之间添加一对多关系。

当多重设置被禁用时,如何更改此设置?

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 回答