CodeFirst EF を使用しようとしています。問題は、ドメイン コンテキスト (DbContext) ごとに 50 以上のテーブルを読み込んでいることです。厳密な名前のクラスを渡すと無視が機能するため、コンパイラはそれが何であるかを認識しますが、すべての無視をハードコーディングするのは非常に困難です。
参照されている DLL 内のすべてのクラスをループして無視する方法はありますか? 近いコードがあります (投稿からコードを取得します) が、アセンブリ情報を使用してクラス型を渡す方法がわかりません。近くにいるのに遠い…</p>
Assembly pocoQMAssembly = AssemblyInformationPOCO_QM.Get;
foreach (Type typeInfo in pocoQMAssembly.GetTypes())
{
//Make sure it is not one of the classes used in DbSet<>
if (typeInfo != typeof(tbl_age_groups) ||
typeInfo != typeof(tbl_axis)
)
{
//This line will show an error on typeInfo
//Is there a way to cast it to a class in some way so it likes it?
modelBuilder.Ignore<typeInfo>();
}
}
これにより、アセンブリが公開され、簡単に取得できるようになります。
public class AssemblyInformationPOCO_QM
{
public static System.Reflection.Assembly Get
{
get
{
return typeof(AssemblyInformationPOCO_QM).Assembly;
}
}
}