我有一个Linq to Entities查询,我想选择一些特定的列并将新对象存储到预定义的对象中。但是,我收到了错误
<object>
不包含带0个参数的构造函数。
不确定这里有什么问题......
也不确定这是否是最佳方式,或者使用匿名类型是否更好而不是创建工资单对象。
Linq查询
public Payroll GetTestCasePayroll(decimal testScenarioID) //not sure if object is correct return
{
Payroll instance = (from o in DbContext.UI_OnDemandCheckHeader
where o.TestScenarioID == testScenarioID
select new Payroll(o.PayEntityCode, o.PayrollYear, o.PayrollNumber)).First();
//{ PayEntityCode = , PayrollYear = o.PayrollYear, PayrollNumber = o.PayrollNumber }).First();
return instance;
}
薪资对象
class Payroll
{
private string _payEntityCode;
private decimal _payrollYear;
private string _payrollNumber;
public Payroll(string payEntityCode, decimal payrollYear, string payrollNumber)
{
PayEntityCode = payEntityCode;
PayrollYear = payrollYear;
PayrollNumber = payrollNumber;
}
public decimal PayrollYear
{
get { return _payrollYear; }
set { _payrollYear = value; }
}
public string PayEntityCode
{
get { return _payEntityCode; }
set { _payEntityCode = value; }
}
public string PayrollNumber
{
get { return _payrollNumber; }
set { _payrollNumber = value; }
}
答案 0 :(得分:4)
您的Payroll类需要一个不带参数的构造函数,例如
Public Payroll() { }
Linq的工作原理是创建一个输出类的空实例,然后在每个属性上使用setter。除了空构造函数之外,它不会使用任何东西。