相关疑难解决方法(0)

如何创建一个也允许空值的唯一约束?

我希望对我将使用GUID填充的列具有唯一约束.但是,我的数据包含此列的空值.如何创建允许多个空值的约束?

这是一个示例场景.考虑这个架构:

CREATE TABLE People (
  Id INT CONSTRAINT PK_MyTable PRIMARY KEY IDENTITY,
  Name NVARCHAR(250) NOT NULL,
  LibraryCardId UNIQUEIDENTIFIER NULL,
  CONSTRAINT UQ_People_LibraryCardId UNIQUE (LibraryCardId)
)
Run Code Online (Sandbox Code Playgroud)

然后看看我正在尝试实现的代码:

-- This works fine:
INSERT INTO People (Name, LibraryCardId) 
 VALUES ('John Doe', 'AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA');

-- This also works fine, obviously:
INSERT INTO People (Name, LibraryCardId) 
VALUES ('Marie Doe', 'BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB');

-- This would *correctly* fail:
--INSERT INTO People (Name, LibraryCardId) 
--VALUES ('John Doe the Second', 'AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA');

-- This works fine this one first time: …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

584
推荐指数
9
解决办法
23万
查看次数

实体框架筛选索引

我使用EF 6.1.x Code First.

我已经读过EF最新版本不支持带过滤器表达式的索引.

SO上也没有解决方案:

EF 6.1独特的可空指数

一年后,使用Code First和DbMigrations使过滤器索引工作的工作方式是什么?

CREATE UNIQUE NONCLUSTERED INDEX [IX_DefaultLanguageApplicationId] ON [dbo].[Languages]
(
    [IsDefaultLanguage] ASC,
    [ApplicationId] ASC,
)
WHERE ([IsDefaultLanguage]=(1))
Run Code Online (Sandbox Code Playgroud)

entity-framework ef-code-first entity-framework-6

25
推荐指数
2
解决办法
5067
查看次数

EF Core是否允许唯一列包含多个空值?

我的实体有一个允许为null的属性.但是,如果它不为null,那么它必须是唯一的.换句话说,该列是唯一的但允许多个空值.

我试过了:

config.Property(p => p.ProductId).IsRequired(false);
Run Code Online (Sandbox Code Playgroud)

我记得在前核心EF中努力工作.

这可能吗?如何配置实体?

c# entity-framework ef-code-first entity-framework-core

3
推荐指数
1
解决办法
2532
查看次数