0

私はC#を初めて使用します。私を助けてください。

 class BasicPay
    {
        public int employee_personal_id { get; set; }
        public int grade_id { get; set; }
        public int position_id { get; set; }
        public Int32 base_pay { get; set; }
        public Int32 housing { get; set; }

    private static void getEmployeeForEmpFinance(int empPersionalinfoID)
        {

            var context = new SSPModel.sspEntities();
            var query = from c in context.Employee_Financial
                        join d in context.Employee_Employ on
                        c.Employee_Personal_InfoEmp_id equals d.Employee_Personal_InfoEmp_id
                        where c.Employee_Personal_InfoEmp_id == empPersionalinfoID
                        select new { c.ID, c.Employee_Personal_InfoEmp_id, c.Base_Pay, c.Housing_Allowance, d.Grade_Id };
            var y = query.SingleOrDefault();
            var basic = new List<BasicPay>();

           **basic.Add(y.Employee_Personal_InfoEmp_id,y.Grade_Id);** // THIS IS WHAT I DO NOT UNDERSTAND

        }

}

コメントされた行は私が得ていないものです。BasicPayの独自のクラスで作成しました。結果をこれに追加するにはどうすればよいですか?私を助けてください。私は切実に必要です!

編集済み-----それで、私は以下の人の1人からの提案を使用しました、そしてそれはうまくいきました、そして私はそれを改善しようとしました..以下は私の新しいコードです。

private static BasicPay  getEmployeeForEmpFinance(int empPersionalinfoID)
{

    var context = new SSPModel.sspEntities();
    var query = from c in context.Employee_Financial
                join d in context.Employee_Employ on
                c.Employee_Personal_InfoEmp_id equals d.Employee_Personal_InfoEmp_id
                where c.Employee_Personal_InfoEmp_id == empPersionalinfoID
                select new BasicPay
                {
                    employee_personal_id = c.Employee_Personal_InfoEmp_id,
                    grade_id = d.Grade_Id,
                    base_pay = c.Base_Pay,
                    housing = c.Housing_Allowance
                };
  var y = query.SingleOrDefault();

  return y;
}

public static void employeeEmploy(int payperiodID){

            var context = new SSPModel.sspEntities();
            var query = from c in context.Payroll_Batch
                        where c.PayperiodID == payperiodID
                        select c.Payroll_GroupID;
            int y = query.SingleOrDefault();

            Debug.WriteLine("group id: " + y);

            var query2 = from i in context.Employee_Employ
                         where (i.Payroll_Group == y && i.Grade_Id != null)
                         select new { i.ID,i.Employee_Personal_InfoEmp_id, i.Date_of_Appointment, i.Date_of_Employment, i.Grade_Id, i.Substantive_designation };
           var  empEmploy = query2.ToList();

           var basics = new List<BasicPay>();

           foreach (var x in empEmploy)
           {
               basics.Add(getEmployeeForEmpFinance(x.Employee_Personal_InfoEmp_id));


           }
           for (int c=0; c < basics.Count(); c++)
           {
               Debug.WriteLine(basics.ElementAt(c).employee_personal_id);
           }

}

これを実行している間、最後に次のエラーが発生します。

オブジェクト参照がオブジェクト インスタンスに設定されていません。

説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーとエラーがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。

例外の詳細:System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。

注-正しいデータセットが出力されます。最後にこのエラーが発生します。なんらかの理由?

4

5 に答える 5