【发布时间】:2019-05-11 21:37:29
【问题描述】:
我有两个模型类 - 都有一个 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 中创建一条记录。
【问题讨论】:
-
发布这些表的 EF 映射
-
我在 SQL Server 2017 中设置了一个新数据库,并使用您的“创建表...”DDL 来创建它工作的新表,所以那里没有问题。 “这两个类和表基本相似——除了名称。”这可能是问题的根源,因此请发布模型类的代码。
-
原帖已更新。找不到此“SelfBilling”设置与我正在使用的类似设置之间的区别:-(
标签: c# sql-server asp.net-mvc-4 entity-framework-6