Re[3]: ID объекта с самим объектом
От: _FRED_ Черногория
Дата: 16.05.11 15:23
Оценка: 2 (1)
Здравствуйте, bin64, Вы писали:

А>>>     get { return _dataService.GetObject<ChildEntity>(ChildID); }

_FR>>А внутри каждой энтити хранить ссылку на сервис разве кузяво?
B>нет. конечно же _dataService — не мембер Entity (он синглетон)

Ну по сравнению с этим уже ничего не страшно

От сабжевой проблемы тогда можно уйти очень просто: объявить методы-расширения:

public abstract class ParentEntity : BizEntity
{
  public abstract Guid  ID       { get; set; }
  public abstract Guid  ChildID  { get; set; }
}

static class DataMethods
{
  public static ChildEntity Child(this XDataService /* тип _dataService у вас */ dataService, ParentEntity entity) {
    if(dataService == null) {
      throw new ArgumentNullException("dataService");
    } else if(entity == null) {
      throw new ArgumentNullException("entity");
    }//if

    return dataService.GetObject<ChildEntity>(entity.ChildID);
  }

  // Или даже так, если синглетон не режет глаз
  public static ChildEntity Child(this ParentEntity entity) {
    if(entity == null) {
      throw new ArgumentNullException("entity");
    }//if

    return _dataService.GetObject<ChildEntity>(entity.ChildID);
  }
}


_FR>>А сбрасывать кеши когда либо планируется?

B>да: пока, практически в каждой таблице в БД храниться TimeStamp
_FR>>Синхронизировать кеши будете?
B>планируем, с помощью "арбитра" (как правильно, по научному — не знаю.)

"_dataService" — это тулкитный объект? Он эти два пункта сумеет выполнить?
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.