2014-09-24 16 views
0

這裏有一個LINQ到CRM查詢:的EntityReference屬性並不總是完全填充

Contact crmContact = xrm.ContactSet.Where(x => x.ContactId == contactId).SingleOrDefault(); 

我有一個屬性,EntityReference,因爲這樣的:

crmContact.assigned_clinic; 

如你所知,一個EntityReference包含這些屬性:

- Id (the Guid of the entity that it refers to) 
- LogicalName (what type of entity does this reference references to) 
- Name (the 'Name' attribute of the entity that's being refered to) 

由於某些原因,我不能把我的手指o n,在某些情況下,LogicalNameName屬性正確填充,有時它們是空字符串。

強制完全檢索數據的任何想法?

回答

2

那麼,那並不長。我認爲SingleOrDefault()檢索了所有內容,但顯然你需要調用ToList()來實現。我將查詢改爲:

Contact crmContact = xrm.ContactSet.Where(x => x.ContactId == contactId).ToList().SingleOrDefault(); 

現在所有EntityReference屬性都正確填充正確。有時我會這樣做,有時候不會這樣解釋「並不總是完全人口稠密」的奧祕。

1

技術原因寫在MSDN:

EntityReference.Name Property

該屬性可以包含值或空。除非EntityReference對象已從服務器檢索到 ,否則此屬性不會自動填充 。