【问题标题】:RIA Services: Entity Framework Reference EntitiesRIA 服务:实体框架参考实体
【发布时间】:2010-09-26 19:49:38
【问题描述】:

我正在尝试将 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;
  }

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

   if (result != null && result.EmployeeRoleReference.IsLoaded == false)
   {
    result.EmployeeRoleReference.Load();
   }
   return result;
  }

在返回之前检查对象时,这两种方法似乎都正确地填充了 Reference 对象。 但是,当我尝试通过 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;
   }
  }

这似乎都是教科书类型的东西,但我无法追查为什么 RIA 服务没有像我预期的那样填充参考实体。

【问题讨论】:

    标签: c# entity-framework-4 ria


    【解决方案1】:

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

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

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

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多