Отсутствует столбец в запросе контроллера - PullRequest
0 голосов
/ 01 октября 2019

Я использую ASP.NET и хочу отобразить изображение, хранящееся в моей базе данных (SQL Server), как varbinary(max), и я использую SQLbinary в своей модели для его представления.

Iиметь модель, представляющую таблицу:

namespace models
{
    [Table("Web.TestView")]
    public class WebTestView
    {
        [Key]
        public int TestId { get; set; }
        [StringLength(513)]
        public string Namespace { get; set; }
        public SqlBinary ImageData { get; set; }
        public DateTime EndTime { get; set; }
    }
}

один DbContext, содержащий ссылку на эту таблицу БД:


public virtual DbSet<WebTestView> WebTestView { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<WebTestView>()
                .Property(e => e.Namespace)
                .IsUnicode(false);
}

И контроллер, вызывающий эту таблицу:

var query = _db.WebTestView;
testViews = query.ToList();

Проблема в том, что ImageData всегда нулевой в каждом testViews.

{SELECT     [Extent1].[TestId] AS [TestId],
     [Extent1].[Namespace] AS [Namespace],
     [Extent1].[Name] AS [Name],
     [Extent1].[EndTime] AS [EndTime]
    FROM [Web].[TestView] AS [Extent1]}

Да, ImageData отсутствует .

Есть ли у кого-нибудьИдея, почему этот запрос IQueryable не запрашивает какие-либо ImageData?

1 Ответ

0 голосов
/ 02 октября 2019

Хорошо, я понял, что проблема связана с типом SQLBinary, просто пришлось изменить его на байт [].

Это удивительно, потому что я создаю эти данные как SQLBinaryв общем:

SQLBinary (c #) -> VARBINARY(MAX) (SQL Server) -> byte[] (c #)

Теперь мой вопрос о том, почему мы можемпреобразовать это одним способом, но не другим?

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