2016-12-26 84 views
3

我正在做我的MVC應用程序,我已經做了一部分(使用實體框架),並正常工作。然而,沒有我得到了一個錯誤:EntityFramework發生異常

+  InnerException {"The class 'ClassDeclarationsThsesis.Models.Subject' has no parameterless constructor."} System.Exception {System.InvalidOperationException} 


An exception of type 'System.Reflection.TargetInvocationException' occurred in EntityFramework.SqlServer.dll but was not handled in user code 

我的類看起來是這樣的:

public partial class Subject 
{ 
    private int v; 
    private int userid; 

    public Subject(int v, int userid, string name) 
    { 
     this.class_id = v; 
     this.user_id = userid; 
     this.name = name; 
    } 


    public int class_id { get; set; } 
    public int user_id { get; set; } 
    public string name { get; set; } 

    public virtual Group Group { get; set; } 
    public virtual Subjects_Users Subjects_Users { get; set; } 
    public virtual Task Task { get; set; } 
} 

我怎麼解決這個問題呢?我認爲我已經嘗試了所有我能夠找到的東西,但沒有成功。
此外,我已經從數據庫中讀取數據並使用它,它工作。它只在這種情況下失敗(至少目前爲止)。我對此很困惑。

+0

能否請你告訴LINQ查詢導致這個錯誤?你可能會重寫它來和當前課程一起工作。 – juharr

回答

3

您需要添加參數的構造函數到主題類:

public partial class Subject 
{ 
    private int v; 
    private int userid; 

    public Subject() 
    { 
    } 

    public Subject(int v, int userid, string name) 
    { 
     this.class_id = v; 
     this.user_id = userid; 
     this.name = name; 
    } 


    public int class_id { get; set; } 
    public int user_id { get; set; } 
    public string name { get; set; } 

    public virtual Group Group { get; set; } 
    public virtual Subjects_Users Subjects_Users { get; set; } 
    public virtual Task Task { get; set; } 
} 
2

在像C#(或Java)這樣的語言中,每個公共類都帶有自己的無參數構造函數。也就是說,直到你定義一個構造函數(任何構造函數),那麼你有責任添加所有你需要的構造函數。

所以你的情況,你就需要添加:

public Subject() {} 
+1

我不認爲這很容易,謝謝! –