【问题标题】:Return a DataSet from Method从方法返回一个数据集
【发布时间】:2012-02-07 05:03:32
【问题描述】:

我有一个方法,其中包含我的查询。我的查询是一个 LINQ 查询,但我希望该方法返回一个 DataSet。这可能吗,如果可以,您如何进行设置。

private DataSet ListAllData(string distributorId)
{
     var theQuery =  (from r in gServiceContext.CreateQuery("opportunity")  
  join c in gServiceContext.CreateQuery("contact") on ((EntityReference)r["new_contact"]).Id equals c["contactid"] into opp 
  from o in opp.DefaultIfEmpty()
  where ((EntityReference)r["new_channelpartner"]).Id.Equals(distributorId) && ((OptionSetValue)r["new_leadstatus"]).Equals("100000002")
  select new
    {
         OpportunityId = !r.Contains("opportunityid") ? string.Empty : r["opportunityid"],
         CustomerId = !r.Contains("customerid") ? string.Empty : ((EntityReference)r["customerid"]).Name,
         Priority = !r.Contains("opportunityratingcode") ? string.Empty : r.FormattedValues["opportunityratingcode"],
         ContactName = !r.Contains("new_contact") ? string.Empty : ((EntityReference)r["new_contact"]).Name,
         Source = !r.Contains("new_sourcepick") ? string.Empty : r.FormattedValues["new_sourcepick"],

    });
}

谢谢!

【问题讨论】:

  • 你有可能使用 LINQ,你已经构建了一个强类型的对象,你想放弃所有的努力并返回一个弱类型的 DataSet?

标签: c# linq dataset


【解决方案1】:

这可能会有所帮助:Creating a DataTable From a Query

【讨论】:

  • 谢谢,我认为那篇文章几乎让我成功了。但是我在选择“错误 52 无法隐式地将类型 'System.Linq.IQueryable' 转换为 'System.Collections.Generic.IEnumerable'”时收到此错误。存在显式转换(你错过了演员吗?)”有什么想法吗?
  • 没有看到你的代码,很难说。但是在链接的文章中,请专门查看“创建自定义 CopyToDataTable 方法”部分。它链接到这里:msdn.microsoft.com/en-us/library/bb669096.aspx,它有一个可以帮助你的实现。
猜你喜欢
  • 1970-01-01
  • 2016-09-01
  • 2012-01-17
  • 2019-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-20
  • 1970-01-01
相关资源
最近更新 更多