EF6渴望加载相关实体的单一属性

 mobiledu2502885307 发布于 2023-02-13 19:55

在EF6中,我有一个实体Customer,其导航属性为实体地址.地址实体包含属性"City".

我可以急切地加载Address实体,同时让所有客户都这样:

_dbSet.Customers.Include(customer => customer.Address);

这给了我所有的客户,所有的地址属性都加载了.

当然这样可以正常工作,但我在Address表中唯一需要的是"City"字段,在不需要它们的情况下从持久数据存储(SQL Server)获取所有地址属性并不好.

我尝试了以下方法:

_dbSet.Customers.Include(customer => customer.Address.City);

...但这给了我一个运行时异常:

An unhandled exception of type 'System.InvalidOperationException' occurred in mscorlib.dll

Additional information: A specified Include path is not valid. The EntityType 'MyModel.Address'does not declare a navigation property with the name 'City'.

我理解这一点,因为City只是一个字段,而不是与另一个表/实体的关系.

但是有没有另一种方法可以实现我想要的,或者是最佳实践只包括整个地址实体,即使我只需要城市字段???

我想要的是我可以使用myCustomer.Address.City,而不需要对数据库进行额外的查询,但是当我使用myCustomer.Address.Street时,街道属性不是急切加载的,应该另外从中获取数据库...

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有