2010-11-12 54 views
0

我有以下代碼...Silverlight的RIA要求它只返回1

internal sealed class Menu_Metadata 
{ 
    private Menu_Metadata() { } 

    [Key] 
    public int MenuHeaderID { get; set; } 
    public string MenuHeaderName { get; set; } 
    [Include] 
    [Association("MenuHeader_MenuItem", "MenuHeaderID", "MenuHeaderID")] 
    public IEnumerable<MenuItem> MenuItems { get; set; } 
} 

public class EmployeeMenuItem 
{ 
    [Key] 
    public int MenuItemID { get; set; } 
    public int MenuHeaderID { get; set; } 
    public string MenuItemName { get; set; } 
} 

[MetadataType(typeof(Menu_Metadata))] 
public class EmployeeMenu 
{ 
    public int MenuHeaderID { get; set; } 
    public string MenuHeaderName { get; set; } 
    public IEnumerable<EmployeeMenuItem> MenuItems { get; set; } 
} 

[EnableClientAccess()] 
public class EmployeeMenuService : DomainService 
{ 
    public IQueryable<EmployeeMenu> GetEmployeeMenu() 
    { 
     BusinessLogic.Employee blEmployee = new BusinessLogic.Employee(); 

     int employeeId = blEmployee.GetEmployeeIdFromUserName(HttpContext.Current.User.Identity.Name); 
     var menuHeaders = blEmployee.GetEmployeeMenuHeaders(employeeId); 
     // This works here! 

     IQueryable<EmployeeMenu> retValue = from mh in menuHeaders 
              select new EmployeeMenu 
              { 
               MenuHeaderID = mh.ID, 
               MenuHeaderName = mh.HeaderName, 
               MenuItems = from mhi in mh.MenuHeaderItems 
                  select new EmployeeMenuItem 
                  { 
                   MenuItemID = mhi.MenuItemID, 
                   MenuHeaderID = mhi.MenuHeaderID, 
                   MenuItemName = mhi.MenuItem.MenuItemName 
                  } 
              }; 
     return retValue; 
    } 
} 

這是由一個Silverlight手風琴控制

EmployeeMenuContext employeeMenuContext = new EmployeeMenuContext(); 
accordion2.ItemsSource = employeeMenuContext.EmployeeMenus; 
employeeMenuContext.Load(employeeMenuContext.GetEmployeeMenuQuery()); 

的MenuHeaderName的通過就好了未來消費,和的MenuItems爲第一個MenuHeader填充,但其他3個MenuItems爲空。

任何想法爲什麼?

什麼時候更容易使用EF4和RIA?這看起來非常難以置信,並且不必要的複雜,以便獲得一個帶有子類的簡單實體!

回答

0

我不完全確定,但似乎問題可能是我試圖在xaml構造函數中進行數據綁定。我創建了一個Loaded事件並將代碼移到那裏,現在它似乎可以工作。