namespace Yw.DAL.PostgreSql { /// /// /// public partial class BimfaceFileRelationLabel : BaseDAL, IBimfaceFileRelationLabel { /// /// /// public override ConnectionConfig ConnectionConfig { get { return ConfigHelper.PostgreSqlConnectionConfig; } } /// /// 根据 RelationID 获取 /// public List GetByRelationID(long RelationID) { using (var db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable() .Where(x => x.RelationID == RelationID) .ToList(); } } /// /// 更新 Content /// public bool UpdateContent(long ID, string Content) { using (var db = new SqlSugarClient(ConnectionConfig)) { return db.Updateable() .SetColumns(x => x.Content == Content) .Where(x => x.ID == ID) .ExecuteCommandHasChange(); } } /// /// 保存 /// public bool Save(long RelationID, List entityList) { if (RelationID < 1) { return false; } if (entityList != null && entityList.Count > 0) { var relationIds = entityList.Select(x => x.RelationID).Distinct().ToList(); if (relationIds.Count != 1 || relationIds[0] != RelationID) { return false; } } using (var db = new SqlSugarClient(ConnectionConfig)) { try { db.BeginTran(); var ids = new List(); if (entityList != null && entityList.Count > 0) { foreach (var entity in entityList) { if (entity.ID < 1) { entity.ID = db.Insertable(entity).ExecuteReturnSnowflakeId(); if (entity.ID < 1) { db.RollbackTran(); return false; } } else { var bol = db.Updateable(entity).ExecuteCommandHasChange(); if (!bol) { db.RollbackTran(); return false; } } ids.Add(entity.ID); } } db.Deleteable().Where(x => x.RelationID == RelationID && !ids.Contains(x.ID)).ExecuteCommandHasChange(); db.CommitTran(); return true; } catch { db.RollbackTran(); throw; } } } } }