Проблема острой архитектуры с EntityWithTypedId - PullRequest
1 голос
/ 14 ноября 2011

Я хочу использовать гребень Guid для моей личности. Я добавил интерфейс EntityWithTypedId в мой класс, который не позволяет моей таблице сохраняться. то есть используя nh prof я вижу, что метод SaveOrUpdate не вызывается. Если я просто использую интерфейс Entity, я могу увидеть его в профилировщике.

public class Application : EntityWithTypedId<Guid>
{
    public virtual string Name { get; set; }
    public virtual string CreatedByUserName { get; set; }
    public virtual string ModifiedByUserName { get; set; }
    public virtual DateTime Created { get; set; }
    public virtual DateTime Modified { get; set; }
}


public class ApplicationQuery : NHibernateQuery, IApplicationQuery
{

    public void Update(Application application)
    {
        Session.SaveOrUpdate(application);

    }
}

public class ApplicationMap : IAutoMappingOverride<Application>
{
    public void Override(AutoMapping<Application> mapping)
    {
        mapping.Table("Application");
        mapping.Id(x => x.Id, "Id").GeneratedBy.GuidComb();
    }
}

Контроллер

    [HttpPost]
    [ActionName("Edit")]
    public ActionResult EditPost(Application application)
    {
        var updateApplication = new Application();
        updateApplication.Created = DateTime.Now;
        updateApplication.Modified = DateTime.Now;
        _applicationQuery.Update(updateApplication);
        return RedirectToAction("Index");
    }

1 Ответ

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

Я исправил это, обновив свое отображение следующим.

 public void Override(AutoMapping<Application> mapping)
        {
            mapping.Table("Application");
            mapping.Id(x => x.Id, "Id").GeneratedBy.GuidComb().UnsavedValue(Guid.Empty);

        }

Смотрите здесь для получения дополнительной информации.

http://s274.codeinspot.com/q/1486941

...