0
这里是我的简单结构缓存而在装载实体从数据库对象框架
Customer
CustomerID
FirstName
LastName
...
BrokerID <- Navigation Property created with this FK
Broker
BrokerID
FirstName
LastName
现在的问题是,如果我加载多个客户,我想看看客户的名单,我也需要看与客户关联的经纪人姓名,现在一个经纪人可能会有很多客户,因此返回的多个客户很可能会重复BrokerID。
我猜测默认情况下,EF会为每个客户返回Broker的新实例,即使重复,它也会为每个代理查询负载代理。
是否有反正我可以使EF不加载经纪人,如果同一个经纪人之前加载? EF中是否存在这种缓存(仅适用于小型继承)或者我必须添加自己的导航属性实现?
IdentityMap很有趣,我不知道这个,但我想这甚至会遇到并发问题,如果两个客户具有相同的代理,导航属性具有相同的代理对象实例?加载一个查询? – 2010-08-27 10:07:13
我没有看到任何并发问题。每个对象上下文处理IdentityMap。对象上下文通常不共享。如果单个线程请求共享单个代理的多个客户,那么代理是由客户之间共享的单个实例代表是自然的。 – 2010-08-27 11:47:30