Этот вопрос и ответ был очень полезен для меня при переносе более крупного проекта EF с SQL на mySQL, поэтому я подумал, что добавлю свои заметки и надеюсь, что они будут полезны:
Как указано в имени строки подключения должен соответствовать имени класса, который расширяет System.Data.Entity.DbContext.
Кажется, до сих пор нет способа создавать таблицы в EF с использованием коннектора mySQL, но вы можете использовать и изменять сценарии создания SQL для генерации таблиц mySQL. Самым простым способом, который я нашел для этого, было закомментировать и отключить функцию OnModelCreating расширенного DbContext в зависимости от того, нужен ли код для воссоздания таблиц. Если я обнаружу, что делаю это чаще, я планирую решить эту проблему с помощью внедрения зависимостей и иметь отдельные классы, основанные на конфигурации MySQL или MSSQL.
Я обнаружил, что проще убедиться в том, что в комплектах и серверах разработчика был правильный соединитель MySQL .dll, упакованный в выпуске, чем связываться с DbFactoryProviders в webconfig. Получение правильной упаковки в пакете сборки проекта / решения означало, что мне нужны были только строки строки подключения, а не строки DbFactoryProviders, которые, как мне показалось, было трудно работать согласованно на нескольких машинах.
Мне нужно было изменить чувствительность регистра идентификатора mySQL от 0 до 1. Без этого параметра подключенный EF SQL не смог найти таблицы, которые были там из-за смешанных имен вариантов моих объектов по сравнению с таблицы с фиксированным регистром, которые создает mySQL.
Один из простых вариантов - отключить AutoSize
(установить на false
) и увеличить его, чтобы оставалось свободное место.
В качестве альтернативы, возможно, используйте Dock
вместо просто Anchor
, хотя это имеет другое значение, поэтому вам может потребоваться поместить его в Panel
или аналогичный). В конечном итоге это работает так же, как и первое - в первую очередь за счет завышения размера; так что, возможно, первый вариант проще.
, если вы установите свойство формы RightToLeft = yes; поэтому вам не следует использовать свойство Text Align, просто установите Anchor. попробуйте следующие подходы:
Form.righttoleft = yes;
label.anchor = Top, Right;
label.TextAlign = TopLeft;
или
Form.righttoleft = No;
label.anchor = Top, Right;
label.TextAlign = TopRight;
или
Form.righttoleft = yes;
label.righttoleft = No;
label.anchor = Top, Right;
label.TextAlign = TopRight;
Использование TableLayoutPanel с закрепленными метками - единственный надежный метод, который я нашел для размещения меток с выравниванием по правому краю в Winforms. Отключение AutoSize и использование слишком больших меток, кажется, вызывает странные аномалии для пользователей с высоким разрешением.