Entity framework 实体框架外键查询

Entity framework 实体框架外键查询,entity-framework,foreign-keys,entity,Entity Framework,Foreign Keys,Entity,我的实体框架中有两个表,对象和参数,它们的外键指向它们所属的对象。我想用某个对象的所有属性填充一棵树。因此,为了找到我想做的事情: String parentObject = "ParentObjectName"; var getAttributes = (from o in myDB.ATTRIBUTE where o.PARENT_OBJECT == parentObject sele

我的实体框架中有两个表,对象和参数,它们的外键指向它们所属的对象。我想用某个对象的所有属性填充一棵树。因此,为了找到我想做的事情:

   String parentObject = "ParentObjectName";
   var getAttributes = (from o in myDB.ATTRIBUTE
                        where o.PARENT_OBJECT == parentObject
                        select o);
然而,当我尝试这样做时,我得到一个错误,说它无法从类型对象转换为字符串,即使在数据库中该值存储为字符串。我有一个变通方法,在这里我得到parentObject的一个实例,然后检查每个属性并检查它是否是parent_object==parentObjectInstance,但这比只执行一个查询效率要低得多。任何帮助都将不胜感激,谢谢

试试这个:

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

在L2E中,
PARENT\u OBJECT.ToString()
不能(隐式或显式)调用,但如果它只返回一个属性,您可以直接查看:

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

…注意
.NAME

您也可以尝试这样做:“myDB.Attributes.Select(a=>a.PARENT\u OBJECT.ToString()==parentObject);”我尝试了.toString(),它抛出:LINQ to Entities无法识别方法'System.String toString()'方法,并且此方法无法转换为存储表达式。这两个语句抛出相同的异常=/Hmm。为了澄清,对象表和属性表之间存在一对多表关系,对的那么parent_对象是外键吗?请检查此线程,我认为它可能有您的解决方案。您使用的是哪个版本,EF3.5还是EF4?