2016-12-26 4 views
3

私はMVCアプリケーションを実行していますが、私はすでにEntity Frameworkを使用してその一部を実行しており、正常に動作しています。例外が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)のような言語では、各パブリッククラスには独自のパラメータなしコンストラクタが付属しています。つまり、コンストラクタ(任意のコンストラクタ)を定義するまでは、必要とするすべてのコンストラクタを追加する必要があります。

だからあなたの場合には、あなたが追加する必要があります:あなたはSubjectクラスにパラメータなしのコンストラクタを追加する必要が

public Subject() {} 
+1

私はそれがとても簡単だとは思わないでしょう、ありがとう! –

関連する問題