EntityFramework发生了异常。

3

我正在开发一个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; }
}

我该如何解决这个问题?我认为我已经尝试了一切我能在这里找到的方法,但什么都没用。
此外,我已经从数据库中读取并使用了数据,并且它也起作用。只有在这种情况下失败了(至少到目前为止)。我对此感到非常困惑。


你能展示一下引起错误的 LINQ 查询吗?你可能可以重写它以适应当前的类。 - juharr
2个回答

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; }
}

2
在像C#(或Java)这样的语言中,每个公共类都带有自己的无参构造函数。也就是说,在定义构造函数(任何构造函数)之前,您需要添加所有需要的构造函数。
所以在您的情况下,您需要添加:
public Subject() {}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接