2013-05-01 61 views
0

我有一个属性,执行一个LINQ查询。为什么它会返回一个布尔值?我怎样才能让它返回我的ORMClass的一个实例?C#LINQ EntityFramework问题

public string ContactPersonName 
{ 
    get 
    { 
     return Convert.ToString(
      Client.ContactPersons.Select(x => x.MainContactPerson == true).First() 
     ); 
    } 
} 

我想一些

((ContactPerson)Client.ContactPersons.Select(x => x.MainContactPerson == true).First())).Name //typecast error 
+0

哪里是名为'MainContactPerson'的属性引用?你能向我们展示'ContacPerson'类吗? – 2013-05-01 16:31:59

回答

5

您应该使用Where过滤,而不是Select

Client.ContactPersons.Where(x => x.MainContactPerson).First(); 

对于比较简单的:

Client.ContactPersons.First(x => x.MainContactPerson); 
+0

为了我自己的澄清,你建议使用“Where”还是“First”? – 2013-05-01 16:29:07

+0

@JakeSmith:非常感谢,我编辑了我的答案 – 2013-05-01 16:30:44

+1

非常感谢。 – Tres 2013-05-01 16:32:28

0

你正在做一个Select当你真的想要一个Where

public string ContactPersonName 
{ 
    get 
    { 
     return Convert.ToString(
      (
       Client.ContactPersons.Where(x => x.MainContactPerson == true).First()) 
      ) 
      ; 
    } 
}