本文整理汇总了C#中IEntityPersister.IsInstance方法的典型用法代码示例。如果您正苦于以下问题:C# IEntityPersister.IsInstance方法的具体用法?C# IEntityPersister.IsInstance怎么用?C# IEntityPersister.IsInstance使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IEntityPersister
的用法示例。
在下文中一共展示了IEntityPersister.IsInstance方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: InstanceAlreadyLoaded
/// <summary>
/// The entity instance is already in the session cache
/// </summary>
private void InstanceAlreadyLoaded(IDataReader rs, int i, IEntityPersister persister, EntityKey key, object obj,
LockMode lockMode, ISessionImplementor session)
{
if (!persister.IsInstance(obj, session.EntityMode))
{
string errorMsg = string.Format("loading object was of wrong class [{0}]", obj.GetType().FullName);
throw new WrongClassException(errorMsg, key.Identifier, persister.EntityName);
}
if (LockMode.None != lockMode && UpgradeLocks())
{
EntityEntry entry = session.PersistenceContext.GetEntry(obj);
bool isVersionCheckNeeded = persister.IsVersioned && entry.LockMode.LessThan(lockMode);
// we don't need to worry about existing version being uninitialized
// because this block isn't called by a re-entrant load (re-entrant
// load _always_ have lock mode NONE
if (isVersionCheckNeeded)
{
// we only check the version when _upgrading_ lock modes
CheckVersion(i, persister, key.Identifier, obj, rs, session);
// we need to upgrade the lock mode to the mode requested
entry.LockMode = lockMode;
}
}
}