namespace Yi.Framework.Rbac.Domain.Shared; /// /// Menu.ParentId 在部分库中为 varchar(如根节点为 0),与 ORM 中 Guid 映射不一致时会导致 SqlSugar 绑定失败;统一用字符串落库并在需要时转为 。 /// public static class MenuParentIdConverter { public static bool IsRoot(string? raw) => string.IsNullOrWhiteSpace(raw) || raw.Trim() == "0" || string.Equals(raw.Trim(), Guid.Empty.ToString(), StringComparison.OrdinalIgnoreCase); public static Guid ToGuid(string? raw) { if (IsRoot(raw)) { return Guid.Empty; } var t = raw!.Trim(); return Guid.TryParse(t, out var g) ? g : Guid.Empty; } /// 写入数据库:根节点与历史库对齐为 0,否则为标准 GUID 字符串。 public static string FromGuid(Guid g) => g == Guid.Empty ? "0" : g.ToString("D"); }