Ошибка «Неявное преобразование из типа данных nvarchar (max) в varbinary не допускается» при сохранении данных с использованием EF6 - PullRequest
0 голосов
/ 12 мая 2019

У меня есть два класса моделей - оба имеют поле 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.

1 Ответ

0 голосов
/ 13 мая 2019

Вложение НВАРБИНАРНО (МАКС.), Но мне интересно, если оно жалуется:

[OwnerId] [VARBINARY](128) NOT NULL,

Начать сопоставлять с

public string OwnerId { set; get; }

Ожидается тип byte[], а не строка дляэто поле вероятно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...