考虑以下情况,我有三个表
LampPost, columns: Id (PK, int), StreetId (FK, int)
Street, columns: Id (PK, int), CityId (FK, int)
City, columns: Id (PK, int), Name (varchar)
通常的情况是每个城市有很多(数万个)灯柱。假设我正在创建一个 LampPost 管理系统,并且我希望能够按城市过滤 LampPost。但我对 City 表的所有了解是它包含上面列出的两列。在一台服务器上,它可能有额外的列,我不关心。桌子街也是如此。
目前我的数据模型中有所有表,它允许查询context.LampPosts.Where(lp => lp.Street.City.Name == "Paris")
,但我真的很想有另一种方法来完成这个,而不是在整个表中。
我还尝试将表添加到我的数据模型中(我首先使用数据库,在 .NET 4.0 上使用 EF 5)并仅删除不必要的列,但 EF 抱怨未映射的列。
我很确定这可以通过存储过程或某种 executequery 调用来完成,但我对两者都非常不熟悉,所以我问你们,最好的方法是什么?