Насколько я понимаю
Точка 1 : Вы выполните свой запрос LINQ и прочитаете полный SPList Employees
из sharepoint в List<EmployeesItem>
в памяти. Теперь я не знаю, измените ли вы эти EmployeesItem
, отразится ли это в вашем списке SP?Вы можете проверить это самостоятельно.
Точка 2 : Здесь вы создаете тип Anonymous .Если вы измените этот объект, он не изменит ваш EmployeesItem
объект.
Точка 3 : Здесь у вас есть запрос памяти, который имеет IEnumerable
анонимного типа.До тех пор, пока вы не оцените IEnumerable
(выполнив .ToList()
), ваш EmployeeQuery
не будет выполнен.На данный момент, согласно вашему коду, когда вы делаете .DataBind()
;ваш EmployeeQuery
будет выполнен.
private void BindGrid()
{
SPLinqDataContext dc = new SPLinqDataContext(SPContext.Current.Web.Url);
EntityList<EmployeesItem> Employees = dc.GetList<EmployeesItem>("Employees");
var EmployeeQuery = from e in Employees.ToList() //Point 1
select new //Point 2
{
Title = e.Title,
FirstName = e.FirstName,
Position = e.Position.Title,
PositionDescription = e.Position.Description,
Department = e.Position.Department.Title
};
GridView1.DataSource = EmployeeQuery; //Point 3
GridView1.DataBind();
}
Надеюсь, это поможет.