C# RIA服务:实体框架参考实体

C# RIA服务:实体框架参考实体,c#,entity-framework-4,ria,C#,Entity Framework 4,Ria,我正在尝试将RIA服务与实体框架后端一起使用。模型是由设计师自动生成的。(VS 2010、.NET 4.0、EF 4.0、SilverLight 4.0) 我遇到的问题是,引用属性在服务层按预期加载,但当该信息传递到SilverLight应用程序时,引用实体将变为NULL 我使用了两种方法填充引用实体: public Employee GetEmployeeByID(int employeeID) { var result = this.ObjectContext.Employees

我正在尝试将RIA服务与实体框架后端一起使用。模型是由设计师自动生成的。(VS 2010、.NET 4.0、EF 4.0、SilverLight 4.0) 我遇到的问题是,引用属性在服务层按预期加载,但当该信息传递到SilverLight应用程序时,引用实体将变为NULL

我使用了两种方法填充引用实体:

public Employee GetEmployeeByID(int employeeID)
  {
   var result = this.ObjectContext.Employees
    .Include("EmployeeRoles")
    .Where(emp => emp.EmployeeID == employeeID)
    .FirstOrDefault();
   return result;
  }

在返回之前检查对象时,这两种方法似乎都能正确填充参考对象。 但是,当我尝试通过RIA服务从UI引用Employee对象时,EmployeeRole引用的实体为NULL

在前端,我打电话:

public void LoadEmployeeProfile()
  {
   int empID = WebContext.Current.User.EmployeeID;
   LoadOperation<Employee> loadEmployee = _appcontext.Load(_appContext.GetEmployeeByIDQuery(empID));
   loadEmployee.Complete += new System.EventHandler(loadEmployee_Completed);
  }

  void LoadEmployee_Completed(object sender, System.EventArgs e)
  {
   LoadOperation<Employee> loadEmployee = sender as LoadOperation<Employee>;
   if (loadEmployee == null)
    return;

   loadEmployee.Completed -= LoadEmployee_Completed;
   foreach (Employee employee in loadEmployee.Entities)
   {
    this.EmployeeProfile == employee;
    break;
   }
  }
public void LoadEmployeeProfile()
{
int empID=WebContext.Current.User.EmployeeID;
LoadOperation loadEmployee=\u appcontext.Load(\u appcontext.GetEmployeeByIDQuery(empID));
loadEmployee.Complete+=新系统.EventHandler(loadEmployee\u已完成);
}
void LoadEmployee_已完成(对象发送者,System.EventArgs e)
{
LoadOperation loadEmployee=发件人作为LoadOperation;
if(loadEmployee==null)
返回;
loadEmployee.Completed-=loadEmployee\u Completed;
foreach(loadEmployee.Entities中的雇员)
{
this.EmployeeProfile==员工;
打破
}
}

这似乎都是教科书式的东西,但我无法找到RIA服务为什么没有像我预期的那样填充引用实体的线索。

为了澄清,您试图请求一个员工记录,并包括数据库/实体模型中引用链接定义的EmployeeRoles

在包含Employee元数据的.Web RIA项目中,我将检查您是否已在员工元数据中使用[Include]属性标记EmployeeRoles

您需要在查询和模型元数据中包含引用


希望这能有所帮助。

为了澄清,您正在尝试请求一个员工记录,并在数据库/实体模型中包含由引用链接定义的EmployeeRoles

在包含Employee元数据的.Web RIA项目中,我将检查您是否已在员工元数据中使用[Include]属性标记EmployeeRoles

您需要在查询和模型元数据中包含引用

希望这有帮助

public void LoadEmployeeProfile()
  {
   int empID = WebContext.Current.User.EmployeeID;
   LoadOperation<Employee> loadEmployee = _appcontext.Load(_appContext.GetEmployeeByIDQuery(empID));
   loadEmployee.Complete += new System.EventHandler(loadEmployee_Completed);
  }

  void LoadEmployee_Completed(object sender, System.EventArgs e)
  {
   LoadOperation<Employee> loadEmployee = sender as LoadOperation<Employee>;
   if (loadEmployee == null)
    return;

   loadEmployee.Completed -= LoadEmployee_Completed;
   foreach (Employee employee in loadEmployee.Entities)
   {
    this.EmployeeProfile == employee;
    break;
   }
  }