我在SQL Express数据库中有一个用于电信交换的三个实体层次结构,我正在使用实体框架在其上运行一些LINQ查询。
Exchange
位于SubRegion
中Region
。显然,我在Exchanges
关系中也有一个隐含的Region
。
(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, 支持String和Guid') 这个背景。
我需要做EF模型中的任何内容,还是以父母的父对象引用其他方式?
答案 0 :(得分: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());