Виртуальный членский вызов в конструкторе [дубликат]

Ошибка, которую вы получаете, заключается в том, что вам нужно объявить свойство Movies в вашем dbcontext как Virtual.

Как кто-то указал в комментариях, вы должны использовать встроенный в EF поставщик памяти для тестирования.

10
задан Sakkle 3 September 2009 в 15:15
поделиться

4 ответа

Виртуальный членский вызов в базовом классе ctor мог заставить некоторую логику работать в подклассе, прежде чем ctor подкласса назовут (и таким образом прежде чем объект получит шанс инициализировать себя к согласованному состоянию).

Это - просто хорошее напоминание, таким образом, Вы знаете о выполнении чего-то, что могло потенциально вызвать некоторое противное неожиданное поведение.

9
ответ дан 3 December 2019 в 20:06
поделиться

В дополнение к существующим ответам для форм Вы могли добавить обработчик событий Загрузки:

Load += delegate
{
    if (formContext == "add")
    {
        Text = "Add member";
    }
    if (formContext == "edit")
    {
        Text = "Change role";
        userTextBox.Enabled = false;
        searchkButton.Visible = false;
    }
};
6
ответ дан 3 December 2019 в 20:06
поделиться

Просто изолируйте свой класс.

4
ответ дан 3 December 2019 в 20:06
поделиться

Я предложил бы переписать Вас класс следующим образом:

public partial class Form1 : Form
{
    public enum FormContextMode
    {
        Add,
        Edit
    }

    private FormContextMode m_mode = FormContextMode.Add; 

    public Form1( FormContextMode mode )
    {
        InitializeComponent();
        m_mode = mode;
        Load += delegate { UpdateForm(); };
    }

    private void UpdateForm()
    {
        if( m_mode == FormContextMode.Add )
        {
            Text = "Add member";    
        }
        else if( m_mode == FormContextMode.Edit )
        {
            Text = "Change role";
            userTextBox.Enabled = false;
            searchkButton.Visible = false;
        }
    }
}
0
ответ дан 3 December 2019 в 20:06
поделиться
Другие вопросы по тегам:

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