using CloudBuilder.Core.DependencyInjection.EFCore; using Microsoft.EntityFrameworkCore; using System.Reflection; namespace CloudBuilder.Master.Entity { public class CloudBuilderMasterRegistEntity : 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.TreeId,c.PersonId,c.ChildrenId}); builder.Entity().HasKey(c => new {c.TreeId,c.PersonId,c.SpouseId}); 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.FolderNameParent,c.FolderNameSon}); builder.Entity().HasKey(c => new {c.FolderNameParent,c.FolderNameSon}); builder.Entity().HasKey(c => new {c.FolderName,c.UserName}); builder.Entity().HasKey(c => new {c.FamilyName,c.UserName}); builder.Entity().HasKey(c => new {c.FamilyName,c.FolderName,c.UserName}); 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.FamilyName,c.PublishName}); builder.Entity().HasKey(c => new {c.FamilyName,c.PublishName}); builder.Entity().HasKey(c => new {c.FamilyName,c.PublishName}); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity().HasKey(c => new {c.PersonId,c.TreeId,c.UserName}); builder.Entity(eb => { eb.HasNoKey(); }); builder.Entity(eb => { eb.HasNoKey(); }); //***END*** } } }