Мы используем службы RIA в нашем приложении Silverlight, и для одного из наших объектов мы хотим отслеживать, кто создает и обновляет их и когда. Для этого мы добавили эти свойства:Как добавить данные при вставке или обновлении объектов
public class Person
{
public string CreatedBy { get; set; }
public DateTime CreatedOn { get; set; }
public string LastModifiedBy { get; set; }
public DateTime LastModifiedOn { get; set; }
}
Мы хотели бы обновить эти значения в службе домена, так что мы не должны делать это на стороне клиента (и потому также будет добавлено entitities/обновлены . на стороне сервера (я пытался сделать это с помощью модифицированного метода обслуживания домена, как это:.
public void InsertPerson(Person person)
{
person.CreatedBy = GetCurrentUser();
person.CreatedOn = DateTime.Now();
DbEntityEntry<Person> entityEntry = this.DbContext.Entry(person);
if ((entityEntry.State != EntityState.Detached))
{
entityEntry.State = EntityState.Added;
}
else
{
this.DbContext.Persons.Add(person);
}
}
public void UpdatePerson(Person person)
{
person.LastModifiedBy = GetCurrentUser();
person.LastModifiedOn = DateTime.Now();
DbContext.Persons.AttachAsModified(person, ChangeSet.GetOriginal(person), DbContext);
}
но это не похоже, чтобы добавить эти данные на все, что я тогда пытался сделать это с SQL запросов после вставки/с
DbContext.Database.ExecuteSqlCommand("UPDATE Persons SET LastModifiedById = {0}, LastModifiedOn = {1} where Id = {2}", GetCurrentUser(), DateTime.Now, person.Id);
, который фактически обновляет базу данных, но клиент не обновляется/не уведомляется об изменениях до тех пор, пока сущности не будут извлечены из базы данных.
Есть ли у кого-нибудь хорошее представление о том, как наилучшим образом достичь этого?