Как получить varbinary длину как часть модели (т.е. вычисляемое поле) в Entity Framework? - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть следующая модель:

public class TestModel
{
    public byte[] File { get; set; }
}

, которая отображает File в столбец varbinary(max) в SQL Server.

Теперь я хочу получить длину файла без загрузки данных,Я могу сделать это с помощью

context.Test.Select(x => SqlFunctions.DataLength(x.File)).ToList();

Как расширить мою модель, чтобы в ней было FileLength как автоматически вычисляемое поле?Например, что-то вроде

public class TestModel
{
    public byte[] File { get; set; }

    [MapToDBFunction(SqlFunctions.DataLength)] <== WHAT SHOULD BE HERE??
    public int? FileLength { get; set; }
}

1 Ответ

0 голосов
/ 12 апреля 2019

Не в сущности, код для вычисления может определить это только при первой загрузке. Я считаю, что решение, которое будет соответствовать вашим потребностям, - это привязать эту сущность к представлению, а не к таблице. В этом случае представление может иметь вычисляемый столбец для длины файла.

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