using CloudBuilder.Core.DependencyInjection.EFCore; using Microsoft.EntityFrameworkCore; using System.Reflection; namespace CloudBuilder.Security.Entity { public class CloudBuilderSecurityRegistEntity : IMasterRegistEntityType { /// ///注入模块内的所有实体类 /// /// public void RegistEntity(ModelBuilder builder) { string _assemblyName = Assembly.GetExecutingAssembly().GetName().Name; //注入所有Entity实体类 AddEntityType(builder, _assemblyName); //如果Entity实体类不是单一主键,要单独重写注入 RegistKeys(builder); } public void AddEntityType(ModelBuilder builder, string _assemblyName) { RegistEntityHelper.AddMasterEntityType(builder, _assemblyName); } /// ///如果存在多个主键的,要在RegistKeys方法注入 ///builder.Entity().HasKey(c => new { c.TableName, c.FieldName }); ///builder.Entity(eb => { eb.HasNoKey(); }); /// /// public void RegistKeys(ModelBuilder builder) { //***BEGIN*** builder.Entity().HasKey(c => new {c.ActorName,c.GroupName}); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity().HasKey(c => new {c.GroupName,c.PermissionName,c.DependentDetailName}); builder.Entity().HasKey(c => new {c.FunctionNameParent,c.FunctionNameSon}); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity().HasKey(c => new { c.GroupName, c.PermissionName }); builder.Entity().HasKey(c => new {c.MasterCategory,c.MasterSubcategory,c.MasterCodeItem}); builder.Entity().HasKey(c => new {c.PermissionName,c.DependentDetailName}); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity().HasKey(c => new {c.UserName,c.ActorName}); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity().HasKey(c => new {c.UserName,c.DelegatedByUser,c.PermissionName}); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity().HasKey(c => new {c.SessionId,c.Username}); builder.Entity().HasKey(c => new {c.PermissionName,c.FunctionName}); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity().HasKey(c => new {c.GroupName,c.Lang,c.Name}); builder.Entity().HasKey(c => new {c.Username,c.PreferenceKey}); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity().HasKey(c => new {c.Username,c.PreferenceKey,c.ProfileName}); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity().HasKey(c => new {c.EntityName,c.PkeyId,c.LockedByActor}); //***END*** } } }