C# 使用动态返回的列绑定列表
我正在写WCF服务。根据所选的表,每次sql查询的输出都会返回不同的列数。我将sql查询的结果绑定到我的列表。现在我不知道如何用动态返回的列绑定列表。这是我的服务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>
[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; }
}