0

在我的 Lightswitch 项目中,我有一个 People 表,它与 Emails 表有一对多的关系。这与 Beth Massi 在她的 LS 演练中所做的非常相似,网址为http://blogs.msdn.com/b/bethmassi/archive/2013/10/23/beginning-lightswitch-in-vs-2013-part-2-感受-爱-定义-数据-relationships.aspx。每个电子邮件地址都有一个 emailType(即 Work、Personal、Other)。如何将每个用户限制为每个 emailType 只能发送一封电子邮件?

Beth 使用选择列表。我倾向于始终创建与另一个表的关系,因此它在 SQL 中都是可见的。无论哪种方式,用户都可以添加多个“工作”电子邮件。如果您将 EmailType 设置为 Unique,这将被全面应用,现在您只能在系统范围内拥有一封工作电子邮件,而不是每人一封工作电子邮件。

我在帐户和电话中遇到了同样的问题,其中每个帐户应该只有一个主要或一个传真电话类型。

谢谢,

约翰

4

2 回答 2

2

您可以将 emailType 和 email 添加到表的唯一索引中。这将确保每个用户都有一个唯一的 emailType/email 组合。去做这个。打开实体,对于要添加到唯一索引的每个字段,选中“包含在唯一索引中”复选框。

于 2014-10-20T21:54:49.113 回答
0

另一种选择是向相关表添加一个 CHECK 约束,如果 EmailType、AccountType 等的计数使记录无效。如果您需要这种验证逻辑,实体框架将向应用程序抛出 Check Constraint 错误。

于 2014-10-21T14:59:01.690 回答