1
我目前正在執行以下操作來刪除任何我不想包含的EF類。但這意味着我必須列出所有的類。使用代碼優先和實體框架時,「更好」的方法忽略類
protected override void OnModelCreating(DbModelBuilder AModelBuilder)
{
// Remove any classes that we don't want in the database. These are our derived classes
AModelBuilder.Ignore<TCompetition>();
AModelBuilder.Ignore<TCompeitionLadder>();
AModelBuilder.Ignore<TCompeitionPersonRole>();
AModelBuilder.Ignore<TCountry>();
AModelBuilder.Ignore<TSport>();
AModelBuilder.Ignore<TVenue>();
}
所以不是我想我會用反射來獲取的裝配類型列表中,然後刪除,我不希望包含任何類引用。但我似乎無法得到這個工作,因爲類型對象不是Ignore()所需的期望的類引用類型。任何人都可以指出我正確的方向嗎?
protected override void OnModelCreating(DbModelBuilder AModelBuilder)
{
// Remove any classes that we don't want in the database. These are our derived classes
Assembly objAssembly = Assembly.GetExecutingAssembly();
foreach (Type objType in objAssembly.GetTypes())
{
if (objType.BaseType.FullName.StartsWith("TEntityFramework", true, null))
{
AModelBuilder.Ignore<objType>();
}
}
}
我得到的錯誤: 類型或名稱空間名稱'AModelBuilder'找不到(您是否缺少使用指令或一個程序集參考?)\t for: MethodInfo method = typeof(AModelBuilder).GetMethod(「Ignore」); – TheEdge
我的錯誤。我誤解了你的類型,我編輯了代碼,測試了新的代碼 –