EF в UserControl не видят app.config?

Я просто создал пользовательский элемент управления. Это управление также использует мой статический класс Платформы Объекта для загрузки двух полей комбинированного списка. Все хорошо и работает без проблемы. Дизайн и время выполнения работают. Затем, когда я останавливаю приложение все формы, которые содержат мой 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 (см. выше), и восстановить. Это очень странно, все находится в том же блоке, то же пространство имен (ради простоты).

Кто-либо идея?

6
задан Sander Rijken 13 March 2010 в 16:11
поделиться

1 ответ

Похоже, вы каким-то образом выполняете код базы данных в режиме разработки. Чтобы предотвратить это, найдите элемент управления и метод, вызывающие это, и используйте:

if (DesignMode)
    return

Кроме того, статическое кэширование контекста базы данных - очень плохая идея. Это вызовет проблемы с многопоточностью, а также при вставке и удалении. Контекст базы данных предназначен для использования для одной «единицы работы»: добавления 2 и удаления 3 других объектов и однократного вызова SaveChanges .

9
ответ дан 9 December 2019 в 22:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: