Зачем этому объекту нужен DataContext? - PullRequest
0 голосов
/ 02 августа 2011

Это странно.

regiao C = new regiao();
C.Nome = textBoxNome.Text;
C.Descricao = textBoxDescicao.Text;
C.cidades.AddRange(ListaIN);
mgrRegiao mgr = new mgrRegiao();
mgr.UpdateRegiao(C);

C - это объект Linq (код, сгенерированный VS2008 в файле dbml), операция находится вне контекста. ListaIN в имеет тип списка. Это также тип C.cidades. Вызов mgr.UpdateRegiao создает контекст, копирует содержимое в объекты внутри контекста и обновляет объекты. Некоторые из itens в ListN, возможно, произошли из контекста (из результата запроса)

Когда C.cidades.AddRange (ListaIN)

Выполняет, я получаю исключение

Cannot access a disposed object.
Object name: 'DataContext accessed after Dispose.'.

на линии

regiao previousValue = this._regiao.Entity;

в сгенерированном коде для объекта regiao set opeation.

[Association(Name="regiao_cidade", Storage="_regiao", ThisKey="IDRegiao",      IsForeignKey=true)]
    public regiao regiao
    {
        get
        {
            return this._regiao.Entity;
        }
        set
        {
            regiao previousValue = this._regiao.Entity;
            if (((previousValue != value) 
                        || (this._regiao.HasLoadedOrAssignedValue == false)))
            {
                this.SendPropertyChanging();
                if ((previousValue != null))
                {
                    this._regiao.Entity = null;
                    previousValue.cidades.Remove(this)

...

Что не так? Объект C не имеет и никогда не имел контекста. Зачем нужен контекст и как мне это решить? Это потому, что некоторые данные в ListaIN пришли из базы данных? Если да, есть ли способ их отсоединить?

1 Ответ

0 голосов
/ 20 августа 2011

ОК, так что, я думаю, так же, как и Линк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...