0

首先,对不起我的愚蠢问题。我有课

person{

public string name, addr;
}

我还有一个数据上下文,当我调用它时它会返回一个人实体

 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")

非常感谢 Lĩnh

4

2 回答 2

1

您可以将条件作为 an 传递Expression<Func<Person, bool>>并在查询中使用它:

public Person GetPerson(Expression<Func<Person, bool>> predicate)
{
    return (new myDbContext()).GetTable<Person>()
        .First(predicate);
}
于 2013-06-27T08:12:22.697 回答
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
       }
   }
于 2013-06-27T08:10:02.480 回答