繁体   English   中英

LINQ 查询以获取 Silverlight 中的列标题

[英]LINQ Query to get Column Headers in Silverlight

我正在使用 WCF 服务开发 Silverlight 应用程序,我需要从特定表中获取所有列标题。 我一直在尝试编写一个 LINQ 查询来执行此操作,但到目前为止我还无法让它正常工作。 我没有找到很多与此有关的信息。 我找到了以下信息,但在连接到我的数据时遇到了困难。

http://www.c-sharpcorner.com/UploadFile/dhananjaycoder/4856/#ReadAndPostComment

到目前为止,我已经尝试了以下...由于 DataContext 需要一个参数,这将无法编译,这就是我被卡住的地方。

public List<string> GetColumnHeaders()
{
    DataContext context = new DataContext();
    List<string> columnList = new List<string>();
    var dataModel = context.Mapping;

    foreach (var r in dataModel.GetTables())
    {
        if (r.TableName.Equals("table1", StringComparison.InvariantCultureIgnoreCase))
        {
            foreach (var c in r.RowType.DataMembers)
            {
                columnList.Add(c.MappedName);
            }
        }
    }
    return columnList;
}

而不是使用DataContext context = new DataContext(); 我尝试了以下方法,但我知道问题是一样的。

var dataModel = new AttributeMappingSource()
                 .GetModel(
                      typeof(RepositoryBase<HBS_SondesEntities>
                 ));

这是我对解决方案的最佳尝试,很难真正理解您尝试/编写的内容。

public List<string> GetColumnHeaders(){
  List<string> columnList = new List<string>();
  using (SondesEntities context = new HBS_SondesEntities()){
    foreach (var r in context.Mapping.GetTables()){
       if (r.TableName
             .Equals("table1", StringComparison.InvariantCultureIgnoreCase)) {

           foreach (var c in r.RowType.DataMembers){
               columnList.Add(c.MappedName);
           }
       }
     }
  }
  return columnList;
}

假设我在这里没有发胖手指是使用 linq 的相同代码。

public List<string> GetColumnHeaders(){

    List<string> columnList = new List<string>();
    using (SondesEntities context = new HBS_SondesEntities()){
        var query = (
           context.Mapping.GetTables()
             .Where(t=>t.TableName
                        .Equals(
                         "table1", 
                          StringComparison.InvariantCultureIgnoreCase)
                        )
             ).SelectMany(x=>x.RowType.DataMembers);

        columnList  = query.Select(m=>m.MappedName).ToList()
    }
    return columnList;
}

这可能会有所帮助:

http://jesseliberty.com/2009/08/13/linq-for-silverlight-developers/

我不确定你所说的表格是什么意思,但如果它是一个数据网格,那么链接应该会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM