4
我正在創建一個模型聯編程序以與asp.net mvc一起使用。這是我走到這一步:如何檢查密鑰是否在NHibernate中未保存的值
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="****">
使用persitent實體視圖模型是非常困難的安全。問題:什麼是實體密鑰? – Paco 2010-02-21 17:02:35
@Paco我同意存在安全問題。我正在使用它來快速生成後端(未向公衆公開)。我正在尋找的密鑰是在映射文件中映射的值。我會更新排隊。 –
Geoff
2010-02-21 18:12:45