Ich habe die folgende Tabelle. Wenn ich versuche, Datensätze mit LINQ to SQL einzufügen, funktioniert es einwandfrei, bis ich versuche, einen Datensatz einzufügen, bei dem die UserId NULL ist. Wenn ich versuche, dass ich folgende FehlermeldungLINQ to SQL Verletzung der UNIQUE KEY-Einschränkung mit NULL-Spalte
„UNIQUE KEY-Einschränkung doppelte Schlüssel in Objekt nicht“
Ich bin nur leer einfügen 1 Datensatz und der Tisch bekommen versuchen, so dass es auf jeden Fall kein Zusammenstoß auf der einzigartig ist Zwang.
CREATE TABLE [dbo].[QuickViewUserModule](
[QuickViewUserModuleId] [int] IDENTITY(1,1) NOT NULL,
[QuickViewModuleId] [int] NOT NULL,
[UserId] [int] NULL,
[SortOrder] [tinyint] NOT NULL,
... More key stuff ...
CONSTRAINT [IX_QuickViewUserModule] UNIQUE NONCLUSTERED (
[UserId] ASC,
[QuickViewModuleId] ASC)
)
wie u für Linq drehen sich auf der Anmeldung? Ich habe nur Express, also habe ich keinen SQL Profiler. – Alex
Eine eindeutige Constraint wird Ihnen eine NULL haben, aber nur eine: http://www.sqlmag.com/Article/ArticleID/25259/sql_server_25259.html In diesem Fall sollte es mehrere NULL zulassen, aber nur innerhalb unterschiedlicher QuickViewModuleId. –
@Roux: Dieser Fehler hat nichts mit der Einschränkung zu tun. In SQL Server 2005 können Sie beliebig viele Zeilen mit NULL user_ids in dieser Tabelle einfügen (ich habe es tatsächlich versucht). NULL-Werte werden von der Einschränkung ignoriert. Ich weiß nicht über 2000, und das ist ein alter Artikel, auf den Sie verweisen. – cdonner