Ich habe eine Entität mit einem binären Datentyp und einer entsprechenden varbinary(max)
-Spalte in SQL Server. EF erstellt dies:
CREATE TABLE [dbo].[Attachments]
(
[Id] INT IDENTITY(1,1) NOT NULL,
[FileName] NVARCHAR(255) NOT NULL,
[Attachment] VARBINARY(MAX) NOT NULL
);
Wenn ich versuche, .SaveChanges()
von Entity Framework aufzurufen, .SaveChanges()
ich eine Fehlermeldung:
Es kann keine Zeile der Größe 8061 erstellt werden, die größer als die maximal zulässige Zeilengröße von 8060 ist
Ich verstehe den Fehler, es gibt viele davon bei Google, aber ich verstehe nicht, warum ich ihn bekomme. Sollte dies nicht von Entity Framework / SQL Server verwaltet werden?
Richard
Die einzige Möglichkeit, wie Sie diesen Fehler mit dieser Tabellendefinition erhalten, ist, wenn Sie zuvor eine große Spalte mit fester Breite hatten, die inzwischen gelöscht wurde.
CREATE TABLE [dbo].[Attachments] (
[Id] int IDENTITY(1,1) NOT NULL,
[FileName] nvarchar(255) NOT NULL,
[Attachment] varbinary(max) NOT NULL,
Filler char(8000),
Filler2 char(49)
);
ALTER TABLE [dbo].[Attachments] DROP COLUMN Filler,Filler2
INSERT INTO [dbo].[Attachments]
([FileName],[Attachment])
VALUES
('Foo',0x010203)
Was gibt
Meldung 511, Ebene 16, Status 1, Zeile 12 Es kann keine Zeile der Größe 8075 erstellt werden, die größer ist als die maximal zulässige Zeilengröße von 8060.
Wenn dies der Fall ist, erstellen Sie die Tabelle neu
ALTER TABLE [dbo].[Attachments] REBUILD