⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 defaultsaveeventlistener.cs

📁 NHibernate NET开发者所需的
💻 CS
字号:
using System;
using NHibernate.Engine;

namespace NHibernate.Event.Default
{
	/// <summary> An event handler for save() events</summary>
	[Serializable]
	public class DefaultSaveEventListener : DefaultSaveOrUpdateEventListener
	{
		protected override object PerformSaveOrUpdate(SaveOrUpdateEvent @event)
		{
			// this implementation is supposed to tolerate incorrect unsaved-value
			// mappings, for the purpose of backward-compatibility
			EntityEntry entry = @event.Session.PersistenceContext.GetEntry(@event.Entity);
			if (entry != null && entry.Status != Status.Deleted)
			{
				return EntityIsPersistent(@event);
			}
			else
			{
				return EntityIsTransient(@event);
			}
		}

		protected override object SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent @event)
		{
			if (@event.RequestedId == null)
			{
				return base.SaveWithGeneratedOrRequestedId(@event);
			}
			else
			{
				return SaveWithRequestedId(@event.Entity, @event.RequestedId, @event.EntityName, null, @event.Session);
			}
		}

		protected override bool ReassociateIfUninitializedProxy(object obj, ISessionImplementor source)
		{
			if (!NHibernateUtil.IsInitialized(obj))
			{
				throw new PersistentObjectException("uninitialized proxy passed to save()");
			}
			else
			{
				return false;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -