代码之家  ›  专栏  ›  技术社区  ›  Geoff

如何在NHibernate中检查键是否是未保存的值

  •  4
  • Geoff  · 技术社区  · 14 年前

    我正在创建一个与asp.NETMVC一起使用的模型绑定器。到目前为止我得到的是:

    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);
        }
    }
    

    **** IsUnsavedValue(value) **** 具有

    或者,是否有方法获取映射文件中未保存的id值的值。i、 e.****在以下方面:

    <id unsaved-value="****">
    
    1 回复  |  直到 14 年前
        1
  •  2
  •   Adam    14 年前

    试试这个 mapping.Identifier.NullValue