Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用动态返回的列绑定列表_C#_List_Wcf Rest - Fatal编程技术网

C# 使用动态返回的列绑定列表

C# 使用动态返回的列绑定列表,c#,list,wcf-rest,C#,List,Wcf Rest,我正在写WCF服务。根据所选的表,每次sql查询的输出都会返回不同的列数。我将sql查询的结果绑定到我的列表。现在我不知道如何用动态返回的列绑定列表。这是我的服务 [WebInvoke(Method = "PUT", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "MyService")] public List<TableList>

我正在写WCF服务。根据所选的表,每次sql查询的输出都会返回不同的列数。我将sql查询的结果绑定到我的列表。现在我不知道如何用动态返回的列绑定列表。这是我的服务

 [WebInvoke(Method = "PUT", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "MyService")]
    public List<TableList> GetTableListy(Parameters param)
    {
        try
        {
            var myReturnList = new List<LookUpSystemTable>();
            var passedVersionId = int.Parse((param.VersionId));
            var Name = param.Name();              
            var fromDate = param.FromDate.ToShortDateString();
            var toDate = param.ToDate.ToShortDateString();
            string selectedColumnNames = "";
            var PickupList= from t in _TableEntityRepository.AsQueryable()
                                  where t.Name.Equals(Name)
                                  select t.columns;

            var foriegnKeyCol = "k" + Name.Substring(1);

            string columnNames = PickupList.FirstOrDefault();

            if (columnNames != null){
                selectedColumnNames = GetBetween(columnNames.ToUpper(),"SELECT " , " FROM");
                selectedColumnNames = selectedColumnNames.Replace("\n", string.Empty);
            }

                var fromQuery =
                   "select " + selectedColumnNames + "  from  " + tableName  +
                    " t  Where t.FromDate <= '" + fromDate +  "' and  t.Id = " +
                   Id ;


            IEnumerable<MyClass> ListOfTables = Context.Database.SqlQuery<MyClass>(fromQuery);

             foreach (var t in ListOfTables )
                {


                   // How do i assign dynamically created column returned from sqlquery


                }

            }

         return null;
        }

        catch (Exception e)
        {

            throw new WebFaultException<string>(
        string.Format(
            "{0}{1}",
            e.Message, (e.InnerException != null ? e.InnerException.Message : string.Empty)), HttpStatusCode.BadRequest);
        }


    }

您是否探索了数据表的可能性?它允许动态列

或者通过SQL LINQ使用具有动态属性的匿名对象


你能和我分享一些关于它的信息吗?如果你能告诉我如何在我的场景中使用,那也太好了。有可能通过WCF服务返回数据表吗?目前我也使用了类似于public List GetTableListy(Parameters param)的列表,所以现在我可以使用public datatable GetTableListy(Parameters param)我说得对吗?我试着用谷歌搜索,但没有人建议将datable作为良好实践返回。看看这个有人有什么想法吗?
public class TableList 
{
     public int Id { get; set; }
     public string Name { get; set; }
}