Accessing properties through Generic type parameter

Posted by Veer on Stack Overflow See other posts from Stack Overflow or by Veer
Published on 2010-06-17T06:40:43Z Indexed on 2010/06/17 6:43 UTC
Read the original article Hit count: 214

Filed under:
|
|
|

I'm trying to create a generic repository for my models. Currently i've 3 different models which have no relationship between them. (Contacts, Notes, Reminders).

class Repository<T> where T:class
{
    public IQueryable<T> SearchExact(string keyword)
    {
        //Is there a way i can make the below line generic
        //return db.ContactModels.Where(i => i.Name == keyword)        
        //I also tried db.GetTable<T>().Where(i => i.Name == keyword)
        //But the variable i doesn't have the Name property since it would know it only in the runtime
        //db also has a method ITable GetTable(Type modelType) but don't think if that would help me
    }
}

In MainViewModel, I call the Search method like this:

Repository<ContactModel> _contactRepository = new Repository<ContactModel>();

public void Search(string keyword)
{
    var filteredList = _contactRepository.SearchExact(keyword).ToList();
}

I use Linq-To-Sql.

© Stack Overflow or respective owner

Related posts about c#

Related posts about wpf