Организуйте картирование свойств класса, чтобы сначала составить список простого текста и встроить соответствующее изобрC#

Место общения программистов C#
Ответить
Anonymous
 Организуйте картирование свойств класса, чтобы сначала составить список простого текста и встроить соответствующее изобр

Сообщение Anonymous »

Отказ от ответственности: я не могу изменить некоторые оригинальные контенты, потому что я должен избегать этого, чтобы не признавать ответ Charlieface. /> system.invalidoperationException: требуемый столбец «IMG» не присутствовал в результатах операции «FormSQL». />
Я пишу этот вопрос как -преемник < /strong> в этом вопросе: < /p>

[*] Как я могу сначала отобразить текст перед изображением в Blazor? />

Код: Выделить всё

[Browsable(false)]
[Bindable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[EditorBrowsable(EditorBrowsableState.Never)]
[Column("img")]
public byte[]? Img { get; set; }
< /code>
 Примечание (на момент написания этой статьи): Последнее действие потока-31 октября 2019 года, в 14:52. /> 
 версия < /th>
 Дата выпуска исходного выпуска < /th>
< /tr>
< /thead>


.net 9 < /td>
 12 ноября, 2024 < /td>
                   < /table> < /div>
Источник: .net и .net Core Lifecycle, каковы правильные номера версий для C#?, Что нового в C# 13. < /p>

Я искал способ  < /strong>. Класс .
При чтении этой статьи: наследование - выводит типы для создания более специализированного поведения. Я обнаружил, что есть концепция под названием: предотвращение дальнейшего вывода, которую я цитирую: < /p>

Класс может помешать другим классам от его наследства или от любого из его членов, объявив себя или члена как герметичный. < /P>
< /blockquote>
в дополнение, в соответствии с герметичным (C#. /> 
Вы также можете использовать модификатор запечатаного < /code> на методе или свойстве, который переопределяет виртуальный метод или свойство в базовом классе. Это позволяет вам позволить классам выходить из вашего класса и не допустить их переоценки конкретных виртуальных методов или свойств. Вот мой фрагмент кода: < /p>
[Keyless]
public class PlainTextList : ImgList
{
// other properties here...

[Column("name")]
public string? Name { get; set; }

[Column("img")]
sealed protected override byte[]? Img { get; set; }
}

[Keyless]
public class ImgList
{
[Column("id")]
public string? ID { get; set; }

[Column("img")]
protected virtual byte[]? Img { get; set; }
}
< /code>
Наследство класса работает, но на моем коде первого кода на странице бритвы я сталкиваюсь с исключением: < /p>

'plaintext.img 'incescessible из-за уровня защиты (CS0122) < /p>

на public 
вместо этого. Приведенная выше ошибка разрешена, но если я запускаю программу, я получаю ошибку: < /p>

Исключение произошло при переходе на результаты запроса для контекста типа 'myproject.data.sqlserver.sqlserverconconceptontext'. 'Outsql' Operation. < /P>
< /blockquote>

Это мой фрагмент кода моего глобального помощника: < /p>

Код: Выделить всё

public async Task PTListFromSqlAsyncList(string spName, Dictionary parameters)
{
var paramDefs = SQLServerInnerHelper.GlobalWithoutOutputParams();

SqlParameter[]? sqlParameter = MinimalDbSettings.SPArrayOfTuplesAndDictPreScale(paramDefs, parameters);

var sqlParam = MinimalDbSettings.SQLParamLessDynamic(spName, sqlParameter);

return await _context.PlainTextList
.FromSql(sqlParam)
.ToListAsync();
}

public async Task


@a.Name
@*Other data here...*@

}



Image @SortIcon("Img")

Name @SortIcon("Name")

@*Other header here...*@




}
Как вы можете видеть в приведенном выше коде клиента, я ошибался в моем @foreach (var a in sordprodlist!) , что заставляет программу отображать данные plaine и файл изображения в одно и то же время. У меня нет четкого представления о том, как управлять этой частью. Тем не менее, я думал о внедрении списка данных изображения асинхронно на основе его id [/b], чтобы точно связать файл изображения со списком, к которому он принадлежит, так что plaine Text будет выполнен первым, и изображение будет следить. ptlist и imglist переменные заполняются этими методами:

Код: Выделить всё

private async Task LoadPlainTexts()
{
var sQLServerHelper = new SQLServerHelper(context);
pTList = null; // ensure spinner shows
StateHasChanged(); // force re-render to show spinner
var spParam = SQLServerInnerHelper.SomeGlobalMethodRazorPageParam(key: "PLAINTEXT_LIST");
pTList = await sQLServerHelper.PTListFromSqlAsyncList("testSP", spParam);
pagination.TotalRecords = pTList.Count;

if (pTList is null)
{
NavigationManager.NavigateTo("notfound");
}
StateHasChanged();
}

private async Task LoadImages()
{
var sQLServerHelper = new SQLServerHelper(context);
imgList = null; // ensure spinner shows
StateHasChanged(); // force re-render to show spinner
var spParam = SQLServerInnerHelper.SomeGlobalMethodRazorPageParam(key: "IMG_LIST");
imgList = await sQLServerHelper.ImgListFromSqlAsyncList("testSP", spParam);

if (imgList is null)
{
NavigationManager.NavigateTo("notfound");
}
StateHasChanged();
}
< /code>

В моем SP у меня есть две отдельные функции для списка простого текста и список данных файла.  Вот мой упрощенный скрипт: < /p>
 funtext_list function < /h4>
SELECT id, name, {some_plain_text_here} FROM SomeTable
Примечание: {some_plain_text_here} , чтобы сократить скрипт.

Код: Выделить всё

SELECT id, img FROM SomeTable
< /code>

Показывает, что использование герметичного модификатора для моего конкретного варианта использования не работает, как и ожидалось. Дизайн системы, к которому я стремился принести отдельные экземпляры для списка [b] простого текста [/b] и списка данных [b] File [/b]. Затем, на уровне приложения, я объединю эти записи в один список. Тем не менее, рендеринг  асинхронно  разделен для [b] простого текста [/b] и [b] файловых данных [/b], что делает более удобный пользовательский опыт .
Я использовал концепцию  наследие , чтобы слияние двух классов, и я использовал меня, потому что я задумал меня, я использовал меня, я использовал меня, потому что я использовал меня, я использовал меня, я использовал, потому что я задумал меня, и я использовал, потому что я использовал меня, и я использовал, потому что я использовал меня, и я использовал меня, я использовал, потому что я задумал меня, чтобы я был навсегда разыскивается.SELECT st.id, st.name, sot.img {some_plain_text_here}
FROM SomeTable AS st
INNER JOIN SomeOtherTable AS sot ON sot.id = st.id
Примечание. Сценарий t-sql предназначен для демонстрационных целей только .
Мое веб-приложение Blazor работает гладко, но разделение проблем для em> emnedendered eM> emneNenderyed-em-em-em-em-em-em-em-em-em-em-em-em-em-em-em-em-em. правильно. Другими словами, данные Plain Text и файл отображаются одновременно, или простой текст все еще связан с классом модели файла.
Я был удивлен, потому что я думал, что картирование в EF Core разделяет plain Text и файлы , которые предоставляются данные, предоставленные DEF, которые предоставлены DEF, которые предоставляются DEF, которые предоставляются DEF. Как вы можете видеть в моем глобальном помощнике, классы base и , полученные , указаны отдельно и основаны на соответствующем типе класса. Потому что я только сейчас осознал вмешательство @foreach (var a in sordprodlist!) < /Code> код. Моя цель состоит в том, чтобы правильно отобразить свойства при призыве асинхронно двух классов для простого текста и файловых данных . Первый текст < /em> будет выполнен сначала, затем файл изображения < /em> будет следить. Свойства?

Есть ли какие -либо другие существующие решения в C#/. Net 9? Front-end/Back-End код? Трудно работать вручную со многими слоями стека разработки строго (например, база данных, фронт-конец, задний, дизайн и т. Д.). Так что я надеюсь, вы, пожалуйста, понести меня.

Подробнее здесь: https://stackoverflow.com/questions/797 ... text-first
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»