Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
519 views
in Technique[技术] by (71.8m points)

c# - dynamic table name in Entity

I want to call method with Table name like db.users.select(x=> x.FirstName) , but i made a mistake somewhere , i write like this but this returns detail about table on one row , not return table data which i want, help please

    public void LoadToGrid(string dbTableName)
    {
      dataGridView1.DataSource = db.GetType().GetMember(dbTableName).ToList();    
    }
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Your question isn't very clear, but if you mean that You wanna do it in a generic way, then yes that is possible. You can take advantage of the Set<T> method. For example:

public void LoadToGrid<T>(GridType grid) where T: class, new() {
    grid.DataSource = dbContext.Set<T>().ToList();
}

And to customize the data fields in your grid, your can add this overload

public void LoadToGrid<T>(GridType grid, Expression<Func<T,Object>> selectExpression) where T: class, new() {
    grid.DataSource = dbContext.Set<T>().Select(selectExpression).ToList();
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...