如何在NHibernate中检查密钥是否为未保存的值

时间:2010-02-21 16:49:17

标签: c# asp.net-mvc nhibernate

我正在创建一个与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的值。即以下****:

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

1 个答案:

答案 0 :(得分:2)

尝试mapping.Identifier.NullValue