0
我在我的ASP.NET項目中使用的unit of work
與repository pattern
實體框架6.延遲加載不新增對象
我現在面臨的問題是一起活動的,是當我添加一個新的對象數據庫,當我再次調用同一對象時,它不會直接激活爲Lazy loading
。
例如:
我有一個Attendance object
含有2個虛擬鏈接DayCode
和Employee
。
public partial class Attendance
{
public Attendance()
{
this.Id = -1;
this.EmployeeId = -1;
this.Present = false;
this.Time = 0;
this.Closed = false;
this.Correction = false;
}
public int Id { get; set; }
public int EmployeeId { get; set; }
public bool Present { get; set; }
public System.DateTime Date { get; set; }
public string Remark { get; set; }
public int Time { get; set; }
public Nullable<short> DayCodeId { get; set; }
public bool Closed { get; set; }
public bool Correction { get; set; }
public virtual Employee Employee { get; set; }
public virtual DayCode DayCode { get; set; }
}
我DayCode
類:
public partial class DayCode
{
public DayCode()
{
this.Id = -1;
this.Code = "";
this.Attendances = new HashSet<Attendance>();
}
public short Id { get; set; }
public string Code { get; set; }
public string Title { get; set; }
public string Color { get; set; }
public virtual ICollection<Attendance> Attendances { get; set; }
}
我點擊我的網頁按鈕的事件:
protected void btnSaveCorrection_Click(object sender, EventArgs e)
{
Attendance attendance = GetItem();
try
{
unitOfWork.AttendanceRepository.Add(attendance);
unitOfWork.Save();
}
catch
{
ShowMessage("Problemen ondervonden, probeer opnieuw!", "alert alert-danger");
}
// Load attendances
LoadAttendances(3); // Test Michael
LoadCorrections(3); // Test Michael
}
我LoadCorrections
方法:
private void LoadCorrections(int employeeId) // Test _EmployeeId
{
//...
Employee _employee = unitOfWork.EmployeeRepository.LoadItem(employeeId);
int counter = 0;
foreach (Attendance attendance in _employee.Attendances.Where(
e => e.Correction && e.Date.Month == _Date.Month
).OrderBy(e => e.Date).ThenBy(e => e.Id))
{
_bodyRow = new BTableBodyRow();
_bodyRow._CssClass = "";
//...
_cellBody = new BTableBodyCell();
_cellBody._Content = attendance.DayCode.Code + " (" + attendance.DayCode.Title + ")";
//Here I get a nullreference exception!!!!!!!!!!!!!!!!!!
_cellBody._CssClass = "left";
_bodyRow._BodyCells.Add(_cellBody);
//...
_bodyRows.Add(_bodyRow);
counter++;
}
//...
}
我必須更新s ome的方式Lazy loading
或...?