Я просто создал пользовательский элемент управления. Это управление также использует мой статический класс Платформы Объекта для загрузки двух полей комбинированного списка. Все хорошо и работает без проблемы. Дизайн и время выполнения работают. Затем, когда я останавливаю приложение все формы, которые содержат мой UserControl, не работают больше во время проектирования. Я просто вижу две ошибки:
Error1: указанное именованное соединение или не найдено в конфигурации, не предназначенной, чтобы использоваться с поставщиком EntityClient, или не допустимое.
Ошибка 2: переменная ccArtikelVelden
является или необъявленным или никогда не присваивался. (ccArtikelVelde мой UserControl
)
Время выполнения все все еще работает
Мой статический EF Repositoy класс:
public class BSManagerData
{
private static BSManagerEntities _entities;
public static BSManagerEntities Entities
{
get
{
if (_entities == null)
_entities = new BSManagerEntities();
return _entities;
}
set
{
_entities = value;
}
}
}
Некоторая логика, оказывающаяся в моем UserControl загрузить данные в полях комбинированного списка:
private void LaadCbx()
{
cbxCategorie.DataSource = (from c in BSManagerData.Entities.Categories
select c).ToList();
cbxCategorie.DisplayMember = "Naam";
cbxCategorie.ValueMember = "Id";
}
private void cbxCategorie_SelectedIndexChanged(object sender, EventArgs e)
{
cbxFabrikant.DataSource = from f in BSManagerData.Entities.Fabrikants
where f.Categorie.Id == ((Categorie)cbxCategorie.SelectedItem).Id
select f;
cbxFabrikant.DisplayMember = "Naam";
cbxFabrikant.ValueMember = "Id";
}
Единственный способ заставить мои формы работать снова, время проектирования, состоит в том, чтобы прокомментировать часть EF в UserControl (см. выше), и восстановить. Это очень странно, все находится в том же блоке, то же пространство имен (ради простоты).
Кто-либо идея?
Похоже, вы каким-то образом выполняете код базы данных в режиме разработки. Чтобы предотвратить это, найдите элемент управления и метод, вызывающие это, и используйте:
if (DesignMode)
return
Кроме того, статическое кэширование контекста базы данных - очень плохая идея. Это вызовет проблемы с многопоточностью, а также при вставке и удалении. Контекст базы данных предназначен для использования для одной «единицы работы»: добавления 2 и удаления 3 других объектов и однократного вызова SaveChanges
.