2009-08-27 3 views
2

Хорошо ... Я попробовал Google и не получил много хитов. Я не хочу злоупотреблять Так, но это одно из лучших мест, которые нужно спросить, и EF плохо документирован.Entity Framework: AttachAsModified failure/confusion :)

My fail, потому что GetOriginal() возвращает null в UpdateCmsProductCategory. Я предполагаю, что currentCmsProductCategory не находится в ChangeSet. Хорошо ... как я могу поместить его в набор изменений?

Вот последовательность ...

я тянуть CmsProductCategory вниз по ФОС. Я вношу изменения. я называю метод обновления ФОС ...

public void UpdateProductCategory(CmsProductCategory category) 
{ 
    domainservice.UpdateCmsProductCategory(category); 
} 

Что вызывает метод servide домена ...

public virtual void UpdateCmsProductCategory(CmsProductCategory currentCmsProductCategory) 
{ 
    this.Context.AttachAsModified(currentCmsProductCategory, 
     this.ChangeSet.GetOriginal(currentCmsProductCategory)); 
} 

И что должно работать - но нет, это исключения на меня, когда GetOriginal() терпит неудачу , Я чувствую, что мне не хватает шага между тем, когда код меняет его, и я передаю его Wcf.

Подсказки/указатели к хорошей документации?

Спасибо!

ответ

1

Ваша проблема, вероятно, в том, что вы теряете «контекст».

Когда вы делаете звонок для обновления «this.Context», это не то же самое, что вы его читали.

WCF имеет концепцию «за звонок» и «за сеанс». «Для каждого вызова» используется по умолчанию, поэтому вы получаете новый экземпляр службы домена. Вы можете решить эту проблему с помощью сеанса.

Посмотрите на эту ссылку: http://msdn.microsoft.com/en-us/magazine/cc163590.aspx

также попробовать написать тест, чтобы проверить, что то, что вы делаете работы без перенося данные над ФОС.

Смежные вопросы