2013-06-27 93 views
0

首先,对不起我的愚蠢问题。 我有一个类加入表达式linq查询

person{ 

public string name, addr; 
} 

我也得到一个DataContext它会返回一个人的实体,当我把这个

myDbcontext dbContext = new myDbcontext(); 
    var _query = from pson in dbContext.GetTable<person>() where pson.name = "somename" select pson ; 
    return _query.First<person>(); 

“因为我很新的C#。我不知道有没有写这样

getPerson(person => person.name = "somename" && person => person.addr = "some addr") 

千恩万谢一般功能 灵

回答

1

你可以通过你的病情为Expression<Func<Person, bool>>,并在查询中使用它:

public Person GetPerson(Expression<Func<Person, bool>> predicate) 
{ 
    return (new myDbContext()).GetTable<Person>() 
     .First(predicate); 
} 
+0

非常感谢李:) –

0

如果你有以下收集的方式:

var people = (from pson in dbContext.GetTable<person>()).ToList(); 

你可以写这样的方法这将根据他们的姓名和地址来匹配一个人。

public Person GetPerson(string name, string address) 
{ 
    return people.Where(p => p.Name == name && p.Address == address).FirstOrDefault(); 
} 

然后调用该函数:

public void YourFunction() { 
     var person = GetPerson("Darren Davies", "My Address"); 

     if (person != null) { 
      // Your code here 
     } 
    }