2009-10-19 41 views
0

我有以下代碼:與外鍵綁定實體DataList控件

var devices = from d in ctx.Devices.Include("DeviceGroups") 
    where d.DeviceEnabled == true 
    select d; 
dlTerminals.DataSource = devices; 

在前端我做到以下幾點:

<asp:DataList ID="dlTerminals" runat="server" DataKeyField="DeviceId" GridLines="None" RepeatColumns="2" RepeatDirection="Horizontal" Width="100%"> 
    <ItemTemplate> 
      <%# Eval("DeviceGroups.GroupName")%> 
    </ItemTemplate> 
</asp:DataList> 

,但我得到了以下錯誤:

does not contain a property with the name 'GroupName'.

+0

我不確定。我認爲這是EF的問題:(不是因爲你的代碼。 – anishMarokey 2009-10-19 10:38:53

回答

1

找到了解決辦法:

select new { d.DeviceId, d.MAC, d.DeviceType, d.LastConnectTime, d.DeviceGroups.FirstOrDefault().GroupName }; 
0

由於您正在開發asp.net flattening數據可能是最好的解決方案。你也可以考慮增加一個屬性到你的班級,如

public string DeviceGroupName 
{ 
    get 
    { 
     return this.DeviceGroups.FirstOrDefault(); 
    } 

}