protected override void OnModelCreating(ModelBuilder builder)
{
var types = AppDomain.CurrentDomain.GetAssemblies()
//取得实现了某个接口的类
.SelectMany(a => a.GetTypes().Where(t => t.GetInterfaces().Contains(typeof(IRef)))).ToArray();
//取得继承了某个类的所有子类
//.SelectMany(a => a.GetTypes().Where(t => t.BaseType == typeof(RefEntity)))
//.ToArray();
foreach (var type in types)
{
if (type == typeof(RefEntity<>))
continue;
var props = type.GetProperties();
foreach (var p in props)
{
switch (p.Name)
{
case "RefId":
builder.Entity(type).Property(p.Name).HasColumnName("REF_ID_");
break;
case "FormDataRev":
builder.Entity(type).Property(p.Name).HasColumnName("F_form_data_rev_");
break;
case "Id":
builder.Entity(type).Property(p.Name).HasColumnName("ID_");
break;
case "ProjectId":
break;
default:
builder.Entity(type).Property(p.Name).HasColumnName($"F_{p.Name}");
break;
}
}
}