init lserp cs 5.0

This commit is contained in:
cyf
2026-07-10 15:25:05 +08:00
commit 90f3fda86a
3799 changed files with 976868 additions and 0 deletions
@@ -0,0 +1,103 @@
using System;
using System.Data;
using Zhaizj.Framework;
using Zhaizj.Framework.Data;
using Zhaizj.Framework.Log;
using System.Collections.Generic;
using Zhaizj.Framework.ORM.Caching;
namespace Zhaizj.Framework.ORM.Operation {
internal class DeleteOperation {
private static readonly ILog logger = LogManager.GetLogger( typeof( DeleteOperation ) );
public static int Delete( IEntity obj ) {
if (obj == null) throw new ArgumentNullException();
return Delete( obj.Id, obj, Entity.GetInfo( obj ) );
}
public static int Delete( Type t, int id ) {
IEntity obj = FindByIdOperation.FindById( id, new ObjectInfo( t ) );
if (obj != null) {
return Delete( obj );
}
return 0;
}
public static int Delete( int id, IEntity obj, EntityInfo entityInfo ) {
List<IInterceptor> ilist = MappingClass.Instance.InterceptorList;
for (int i = 0; i < ilist.Count; i++) {
ilist[i].BeforDelete( obj );
}
int rowAffected = 0;
rowAffected += deleteSingle( id, entityInfo );
if (entityInfo.ChildEntityList.Count > 0) {
foreach (EntityInfo info in entityInfo.ChildEntityList) {
rowAffected += deleteSingle( id, MappingClass.Instance.ClassList[info.Type.FullName] as EntityInfo );
}
}
if (entityInfo.Parent != null) {
IEntity objP = Entity.New( entityInfo.Parent.Type.FullName );
rowAffected += deleteSingle( id, Entity.GetInfo( objP ) );
}
for (int i = 0; i < ilist.Count; i++) {
ilist[i].AfterDelete( obj );
}
CacheUtil.CheckCountCache( "delete", obj, entityInfo );
return rowAffected;
}
public static int DeleteBatch( String condition, EntityInfo entityInfo ) {
if (strUtil.IsNullOrEmpty( condition )) {
return 0;
}
String deleteSql = new SqlBuilder( entityInfo ).GetDeleteSql( condition );
logger.Info(LoggerUtil.SqlPrefix+ "delete sql : " + deleteSql );
List<IInterceptor> ilist = MappingClass.Instance.InterceptorList;
for (int i = 0; i < ilist.Count; i++) {
ilist[i].BeforDeleteBatch( entityInfo.Type, condition );
}
IDbCommand cmd = DataFactory.GetCommand( deleteSql, DbContext.getConnection( entityInfo ) );
int rowAffected = cmd.ExecuteNonQuery();
logger.Info( "delete : " + rowAffected + " records affected" );
for (int i = 0; i < ilist.Count; i++) {
ilist[i].AfterDeleteBatch( entityInfo.Type, condition );
}
// update cache timestamp
CacheTime.updateTable( entityInfo.Type );
return rowAffected;
}
private static int Delete( Type t, String deleteCondition ) {
return DeleteBatch( deleteCondition, MappingClass.Instance.ClassList[t.FullName] as EntityInfo );
}
private static int deleteSingle( int id, EntityInfo entityInfo ) {
IDbCommand command = DataFactory.GetCommand( getDeleteSql( id, entityInfo ), DbContext.getConnection( entityInfo ) );
return command.ExecuteNonQuery();
}
private static String getDeleteSql( int id, EntityInfo entityInfo ) {
String str = String.Format( "delete from {0} where Id={1}", entityInfo.TableName, id );
logger.Info( "Delete(int id): " + str );
return str;
}
}
}