Как добавить столбец (время работы) в таблицу отношений «многие ко многим»? - PullRequest
0 голосов
/ 07 ноября 2011

У меня есть одна таблица или доменная сущность ChargaOperation, которая сопоставлена ​​с таблицей [ChargeOperation] и имеет отношения многие ко многим с самим собой. Это как смещение клиентских долгов или дерева распределений (родительский уровень и 1 уровень дочерних элементов).

ChargeOperation
{
  int Id,
  decimal Amount,
  IList<ChargeOperation>  DistributedDebts // a tree of distributions using many to many mapping
}

связывает реализованную с помощью [Распределения] таблицу, которая имеет отображение в коде и отображается следующим образом:

 public ChargeOperationMap()
    {
        Table("ChargeOperations");
        Id(x => x.Id).GeneratedBy.Identity();
        Map(x => x.Amount).Not.Nullable().Column("Amount");


        HasManyToMany(x => x.DistributedDebts).Table("Distributions]")
                     .ParentKeyColumn("SourceId")
                     .ChildKeyColumn("SubjectId")
                     .Cascade.All();
    }

таблица [Распределения] имеет поля:

  • SourceId
  • SubjectId.

    SourceId - это идентификатор родительского ChargeOperation.Id, а subjectId - дочерний (один из IList DistributedDebts). Это было нормально, пока мне не пришлось добавлять время для каждой операции распределения и менять поле таблицы [Распределения] , например так:

    • SourceId
    • SubjectId
    • TimeOfOperation

И теперь единственная возможность сделать это - создать карту распределений, разорвать отношения «многие ко многим» и создать два отношения «один ко многим». Как я могу избежать этого и просто написать timeOfOperation в [Распределения] . (Я читаю это с целью, так что это не проблема для чтения)

1 Ответ

0 голосов
/ 07 ноября 2011

Если вы используете SQL Server, вы всегда можете добавить значение по умолчанию GetDate() в столбец timeOfOperation.

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

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