Ric*_*ard 6 sql-server entity-framework sql-server-2008
我有一个实体具有二进制数据类型和varbinary(max)SQL Server中的相应列.EF创建了这个:
CREATE TABLE [dbo].[Attachments]
(
[Id] INT IDENTITY(1,1) NOT NULL,
[FileName] NVARCHAR(255) NOT NULL,
[Attachment] VARBINARY(MAX) NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
当我尝试.SaveChanges()从Entity Framework 调用时,出现错误:
无法创建大小为8061的行,该行大于允许的最大行大小8060
我理解错误,谷歌有很多,但我不明白为什么我得到它.这不应该由Entity Framework/SQL Server管理吗?
理查德
Mar*_*ith 17
我可以看到你使用该表定义得到此错误的唯一方法是,如果您之前有一个大的固定宽度列,此后已被删除.
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)
Run Code Online (Sandbox Code Playgroud)
这使
消息511,级别16,状态1,行12无法创建大小为8075的行,该行大于允许的最大行大小8060.
如果是这种情况,请尝试重建表
ALTER TABLE [dbo].[Attachments] REBUILD
Run Code Online (Sandbox Code Playgroud)