Как проверить, является ли ключ несохраненным значением в NHibernate - PullRequest
4 голосов
/ 21 февраля 2010

Я создаю связыватель модели для использования с asp.net mvc. Вот что я получил до сих пор:

public class ModelBinder : DefaultModelBinder
{
    protected override object CreateModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Type modelType)
    {
        PersistentClass mapping = DataAccess.Configuration.GetClassMapping(modelType);
        if(mapping != null)
        {
            ValueProviderResult value = bindingContext.ValueProvider.GetValue(mapping.IdentifierProperty.Name);
            if(value != null)
            {
                object keyValue = value.ConvertTo(mapping.Key.Type.ReturnedClass);
                if(mapping.Key.**** IsUnsavedValue(value) ****)
                {
                    return DataAccess.Session.Load(modelType, keyValue);
                }
            }
        }
        return base.CreateModel(controllerContext, bindingContext, modelType);
    }
}

Есть ли способ проверить, является ли значение ключа сущности несохраненным в NHibernate? то есть что бы я заменил **** IsUnsavedValue(value) **** на

Или есть способ получить значение несохраненного значения идентификатора в файле отображения. то есть **** в следующем:

<id unsaved-value="****">

1 Ответ

2 голосов
/ 04 марта 2010

попробуйте mapping.Identifier.NullValue

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