0

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

1 に答える 1

4

Payrollクラスには、パラメーターをとらないコンストラクターが必要です。

Public Payroll() { }

Linqは、出力クラスの空のインスタンスを作成し、各プロパティでセッターを使用することで機能します。空のコンストラクター以外は使用しません。

于 2012-08-30T19:31:39.507 に答える