2010-10-27 92 views
1

我在我的實體框架,對象和參數中有兩個表,它們有一個外鍵指向它們所屬的對象。我想用一個特定對象的所有屬性填充一棵樹。因此,爲了找到那些我想這樣做:當我嘗試這樣做,我得到一個錯誤說,它不能從類型對象轉換爲字符串,即使在數據庫中該值存儲爲實體框架外鍵查詢

String parentObject = "ParentObjectName"; 
    var getAttributes = (from o in myDB.ATTRIBUTE 
         where o.PARENT_OBJECT == parentObject 
         select o); 

然而一個字符串。我有一個解決方法,我得到一個parentObject的實例,然後遍歷每個屬性並檢查它是否是parent_object == parentObjectInstance,但這比僅執行一個查詢效率低得多。任何幫助將不勝感激,謝謝!

+0

您正在使用哪個版本的EF3.5或EF4? – 2010-10-27 20:55:26

+0

我正在使用EF 3.5 – Zack 2010-10-28 14:49:07

回答

2

好,PARENT_OBJECT.ToString()不能被稱爲L2E(或明或暗地),但如果它只是返回的屬性,你可以看看直接:

String parentObject = "ParentObjectName"; 
var getAttributes = (from o in myDB.ATTRIBUTE 
        where o.PARENT_OBJECT.NAME == parentObject 
        select o); 

...請注意.NAME

+0

這個伎倆!非常感謝 – Zack 2010-10-28 14:58:01

0

試試這個:

String parentObject = "ParentObjectName"; 
    var getAttributes = (from o in myDB.ATTRIBUTE 
         where o.PARENT_OBJECT.ToString() == parentObject 
         select o); 
+0

你也可以試試這個:'myDB.Attributes.Select(a => a.PARENT_OBJECT.ToString()== parentObject);' – morganpdx 2010-10-27 20:21:13

+0

我試過.toString()拋出:LINQ to Entities無法識別方法'System.String ToString()'方法,並且此方法無法轉換爲存儲表達式。 – Zack 2010-10-27 20:22:10

+0

這兩個語句都拋出相同的異常=/ – Zack 2010-10-27 20:26:57