2011-07-04 43 views
1

我有一個SQL Express數據庫電信交流三個層次的實體,我使用實體框架在其上運行一些LINQ查詢。LINQ選擇到實體參考的參考?

Exchange是在SubRegion這是在Region。很顯然,我也有Region關係的隱性Exchanges爲好。

(Exchange) *...1 (SubRegion) *...1 (Region) 
      *.....................1 

有時用戶想要查看區域或子區域中的所有交換。當我使用下面的LINQ查詢時,我收到一個異常。

Data.Region region = regionComboBox.SelectedItem as Data.Region; 

var esas = from esa in JITScheduleContainer.Exchanges 
    where esa.SubRegion.Region == region 
    select esa; 

exchangeComboBox.Items.AddRange(esas.ToArray()); 

例外:

無法創建 類型 'CpasJitScheduler.Data.Region' 的恆定值。 只有原始類型(「如的Int32, 字符串,和GUID」)在 這方面的支持。

在EF模型中,我需要做什麼或者父母的父對象有其他引用方式嗎?

回答

1

我忘了,我可以用int Id場比較。導致LINQ聲明:

Data.Region region = regionComboBox.SelectedItem as Data.Region; 

var esas = from esa in Container.Exchanges 
      where esa.SubRegion.Region.Id == region.Id 
      select esa; 

exchangeComboBox.Items.AddRange(esas.ToArray());