我正在做我的MVC应用程序,我已经完成了它的一部分(使用Entity Framework)并且工作正常。但是,我没有收到错误:
+ 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 :(得分:3)
您需要向Subject类添加无参数构造函数:
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; }
}
答案 1 :(得分:2)
在像C#(或Java)这样的语言中,每个公共类都带有自己的无参数构造函数。也就是说,在定义构造函数(任何构造函数)之前,您将负责添加您将需要的所有构造函数。
所以在你的情况下,你需要添加:
public Subject() {}