Я сделал метод расширения для использования с EntityFramework Core.
Вот код:
using Microsoft.EntityFrameworkCore;
using System.Data.Common;
namespace TerminalInventory
{
public static class ExtensionMethods
{
public static bool TestConnection(this DbContext context)
{
DbConnection conn = context.Database.GetDbConnection();
try
{
conn.Open(); // Check the database connection
return true;
}
catch
{
return false;
}
}
}
}
Теперь вам просто нужно позвонить:
if (!context.TestConnection())
{
logger.LogInformation("No database connection. Check the connection string in settings.json. {0}", configuration["connectionString"]);
return;
}
Проверьте следующий набор флагов, как пример, упомянутый в MSDN :
pEdit->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_NOHIDESEL | ES_READONLY,
rect, this, 105);
Что такое wnd_Edit? Если это локальная переменная в этой функции, скорее всего, проблема. Деструктор CWnd уничтожает окно, связанное с CWnd. Поэтому, когда wnd_Edit выходит за рамки, поле редактирования также уничтожается. Если это не так, проверьте возвращаемое значение Create (). Это NULL? Если это так, проверьте значение GetLastError ().
Invalidate () не требуется
Добавьте флаг WS_VISIBLE к вашим флагам создания, вам не нужен ShowWindow
Вы создаете кнопку в том месте, где находится IDC_LIST1 - вы, вероятно, захотите выполнить pWdn-> Destroy () после GetClientRect ()
Идентификатор, который вы передаете в Create (), может быть любым, конечно, если вы хотите обрабатывать сообщения от этой кнопки позже, вам нужно будет использовать правильный идентификатор. В этом случае проще всего вручную добавить запись в resource.h.
Что вы имеете в виду под ' Я поместил этот код в обработчик события кнопки '- какая кнопка? Надеюсь, он отличается от того, который вы пытаетесь создать? Ваш код вообще вызывается, останавливается ли он, когда вы ставите точку останова? Какое значение wnd_Edit-> m_hWnd после вызова Create ()?
wnd_Edit является членом вашего диалога, верно, а не локальной переменной функции?