我有两个模型类-都有一个byte[]
字段,用于存储PDF文件。
在数据库中,两个模型类对应于两个表-都带有varbinary(max)
列。
对于一个模型类,我可以轻松地坚持使用SQL Server,但是对于另一类+表,则会出现错误
不允许从数据类型nvarchar(max)到varbinary的隐式转换
这两个类和表基本上相似-除了名称。
针对该错误,我已经找到了很多答案,但是找不到使用EF6的答案。我已经手动创建了数据库表以及类,所以不涉及自动生成。
希望有人可以帮助我克服这个错误。
预先感谢
尝试将列类型从varbinary(max)
更改为nvarchar(max)
。
尝试删除表格并从头开始创建
//Pdf
[Table("SelfBillings")]
public class SelfBilling
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
public string OwnerId { set; get; }
public long BookingId { set; get; }
public long SelfBillingNumber { set; get; }
public DateTime Date { get; set; }
public DateTime PeriodStart { set; get; }
public DateTime PeriodEnd { set; get; }
public decimal PeriodDays { get; set; }
public decimal PeriodHours { get; set; }
public decimal RentalAmount { get; set; }
public decimal RentalAmountTotal { get; set; }
public decimal VatAmount { get; set; }
public decimal TotalAmount { get; set; }
public decimal TotalAmountInclVat { get; set; }
//Pdf
public byte[] Attachment { set; get; }
}
//Database table
CREATE TABLE [dbo].[SelfBillings]
(
[Id] [BIGINT] IDENTITY(1,1) NOT NULL,
[OwnerId] [VARBINARY](128) NOT NULL,
[BookingId] [BIGINT] NOT NULL,
[SelfBillingNumber] [BIGINT] NOT NULL,
[Date] [DATETIME2](7) NOT NULL,
[PeriodStart] [DATETIME2](7) NOT NULL,
[PeriodEnd] [DATETIME2](7) NOT NULL,
[PeriodDays] [DECIMAL](10, 2) NOT NULL,
[PeriodHours] [DECIMAL](10, 2) NOT NULL,
[RentalAmount] [DECIMAL](10, 2) NOT NULL,
[RentalAmountTotal] [DECIMAL](10, 2) NOT NULL,
[VatAmount] [DECIMAL](10, 2) NOT NULL,
[TotalAmount] [DECIMAL](10, 2) NOT NULL,
[TotalAmountInclVat] [DECIMAL](10, 2) NOT NULL,
[Attachment] [VARBINARY](MAX) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
//Mapping
modelBuilder.Entity<SelfBilling>().ToTable("SelfBillings");
我希望在表SelfBillings
中创建一条记录。
答案 0 :(得分:0)
附件是NVARBINARY(MAX),但我想知道它是否在抱怨:
[OwnerId] [VARBINARY](128) NOT NULL,
开始映射到
public string OwnerId { set; get; }
期望使用byte[]
类型,而不是该字段的字符串。