我很新的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類創建的。現在我該怎樣添加我的結果到這一點?請幫助我。我迫切需要!
EDITED ----- 所以我使用了下面的人的建議,它的工作,我試圖改善它..下面是我的新代碼。
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;
}
公共靜態無效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:對象不 設置爲一個對象的一個實例。
注意 - 它不會打印出一組正確的data..just在年底收到此錯誤。任何原因?
我簡單的建議是隔離在其他一些類的屬性,並添加到您的列表 – Smaug 2013-02-18 13:01:12
對不起,它是刪除..奇怪。我創建了我自己的基本工資類,我試圖把它列入清單 –
2013-02-18 13:01:52
然後看到我的答案。它會幫助你。因爲你不能直接添加值,因爲你在列表中提到了「BasicPay」類。所以您只能在List中添加「BasicPay」類型。這是我添加一個新的「BasicPay」類的目的,並分配了值,然後添加到IList – Smaug 2013-02-18 13:06:13