DBset を動的に登録するコード ブロックを作成したいと考えています。インターフェイスを実装するクラスをキャッチするために、空のインターフェイスを使用することにしました。
これが私のコードブロックです。
var entityMethod = typeof(DbModelBuilder).GetMethod("Entity");
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
{
var entityTypes = assembly
.GetTypes()
.Where(t =>
t.GetInterfaces().Contains(typeof(IBaseEnt))).toList();
foreach (var type in entityTypes)
{
entityMethod.MakeGenericMethod(type)
.Invoke(modelBuilder, null);
}
}
しかし、シード メソッドでは dbset を処理できません。私を助けてください。
このコードブロックも試しました。
var entityTypes = from t in Assembly.GetExecutingAssembly().GetTypes()
where t.GetInterfaces().Contains(typeof(IBaseEnt))
&& t.GetConstructor(Type.EmptyTypes) != null
select t;