2013-06-27 94 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 
     } 
    }