2017-01-16 72 views
1

這是我第一次在這裏非常抱歉,如果我沒有默認的懷疑。在我的項目中,我有兩個類型懷疑和一類作品,我想創建一個分類爲使用超類,如設計模式策略。但是我有一個問題,項目狀態是先進的,我多次使用了懷疑和工作類。已經以多種方式嘗試過,但無論是更新數據庫中的錯誤還是之前完成的錯誤。 有沒有人知道一種方式,我可以實現一個通用類分類的疑惑和作品類沒有很多的變化,我已經做了什麼?實體框架代碼首先在兩個現有類中創建一個超類,

我的代碼如下

public abstract class Classificable 
{ 

    [Key] 
    public int id { get; set; } 
    public virtual Classification classication { get; set; } 
} 

public class Doubt : Classificable 
{ 

    public int doubtID { get; set; } 
    public string question { get; set; } 
    public string content { get; set; } 

    public virtual Student student { get; set; } 
    public virtual Course course { get; set; } 
    public virtual Work work { get; set; } 
    public virtual ICollection<Answer> answers { get; set; } 
} 

public class Work : Classificable 
{ 

    public int workID { get; set; } 
    public string name { get; set; } 
    public string nameWork { get; set; } 
    public string filePath { get; set; } 

    public virtual Student student { get; set; } 
    public virtual Course course { get; set; } 
    public virtual ICollection<Doubt> doubts { get; set; } 
} 

public class DB_DIS : DbContext 
{ 

    public DB_DIS() 
     : base("name=DB_DIS") 
    { 
    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<Doubt>().ToTable("Doubts"); 
     modelBuilder.Entity<Work>().ToTable("Works"); 

    } 


    public virtual DbSet<Doubt> Doubts { get; set; } 
    public virtual DbSet<Work> Works { get; set; } 
}` 
+0

*我多次使用疑問和作品班*請解釋你的意思。此外,請告訴*你得到哪些*錯誤。 –

+0

這個名字並不是最合適的,但是我們的目標是使用這個可比較的類來允許我使用通用算法對疑惑和作品進行分類。但是最大的問題是我之前沒有想過這個超類,而且我已經擁有了數據庫和程序的很大一部分,添加這個超類很複雜。 –

回答

0

什麼是Classificable您嘗試應用到DoubtWork屬性或方法?

您是否以包含id字段和workID字段的方式編寫數據結構?

根據我的經驗,如果您嘗試共享EF課程之間的屬性,您最好共享公共領域。我用它在過去爲AuditableBase基類如下:

public class AuditableBase 
{ 
    public string UpdateUserId { get; set; } 
    public DateTime UpdateDate { get; set; } 
} 

然後,所有我的班,我想「審計」將有一個UpdateUserIdUpdateDate,我可以做一些預先保存處理根據AuditableBase的類型設置它們。

+0

這個名稱並不是最合適的,但目標是使用這個可比較的類來允許我使用通用算法對疑惑進行分類和工作 –

+0

我認爲問題是您在基類中擁有您的密鑰。我認爲你需要把它移出來,並把鍵放在「工作」和「疑問」中。您最可能得到的錯誤是EF無法將底層數據讀取器轉換爲「Work」對象,因爲您的「Work」數據存儲器沒有名爲「id」的鍵列。把鑰匙拿出來,你應該可以把'工作'和'懷疑'稱爲'可分類的'。 – Rob

+0

是的,我能夠做更新數據庫,現在我將嘗試調整我所做的分類方法。非常感謝你 –

相關問題