【问题标题】:How to create Dataset and fill the dataset in asp.net using Entity Framework如何使用实体框架创建数据集并在 asp.net 中填充数据集
【发布时间】:2014-03-08 10:31:24
【问题描述】:

我想使用实体框架在 asp.net Web 应用程序中填充数据集。我不熟悉实体框架,请帮助我。

如何创建数据集以及如何填充数据集?

【问题讨论】:

  • EF 的全部意义在于您不必必须处理 DataSet 的行/列结构,而是从你的 EF 代码...

标签: asp.net c#-4.0 entity-framework-4


【解决方案1】:

您通常不使用EF 来处理DataSet 对象。

如果您对填充DataSet 的标准方式感兴趣,以下是一些文章和教程,可以帮助您处理DataSet 对象:

Working with Datasets in Visual Studio

HOW TO: Create and Use a Typed DataSet by Using Visual C# .NET

Introduction to strongly Typed Data Sets

The C# Station ADO.NET Tutorial

如果您有兴趣使用 Entity Framework,以下视频集可能会有所帮助:

Practical Entity Framework for C#: Explore Entity Framework

您可以随时使用搜索引擎进一步搜索教程、指南和示例..

【讨论】:

  • 这和Entity Framework有什么关系?最初的问题是关于从 Entity Framework 填充数据集...
  • @marc_s:OP 并不总是知道他们真正需要什么.. 我希望我已经把他引向了正确的方向。
  • 我正在使用 linq 查询获得结果。我想将此 linq 查询结果绑定到数据集如何将 linq 查询结果绑定到数据集?
  • @user737497:您不需要DataSet 来在您的UI 控件上显示数据。为什么要在这里使用DataSet
  • 当我点击 tje gridview 标题文本时,我想要 Gridview 排序,因为我需要设置 dta 以将表格分配给 dataview 控件
【解决方案2】:

您可以使用以下代码片段填充数据集 这个问题已经在 stackoverflow.com 上提出并回答了

你可以在这里找到Populate a DataSet using Context - Entity Framework 4

所以我只是从那里复制并粘贴到这里给你

     DataSet dataSet = new DataSet("myDataSet");
dataSet.Tables.Add(new DataTable());
//Setup the table columns.

foreach (CmsCategory categories in context.spCmsCategoriesReadHierarchy(n,sl,nn))
{
    DataRow row = dataSet.Tables[0].NewRow();
    row["A"] = categories.A;
    row["B"] = categories.B;

    dataSet.Tables[0].Rows.Add(row);
}

【讨论】:

  • WHY 你到底想这样做吗?您已经拥有您的漂亮 .NET 对象 - WHY 将它们重新组合到 DataTable/DataRow 架构中???这就像时光倒流 20 步......
  • 为什么我需要使用数据集,因为我需要在单击标题文本时对网格进行排序,如果它是 asc,它应该在 asc 或 desc 中,因为我需要使用默认视图网格所以我需要将 linq 查询结果绑定到数据集请帮助我.....
  • @user737497:您可以通过将List<Customer> 直接绑定到您的网格来实现这一点 - 绝对 无需为此转换回 DataSet/DataTable!您需要阅读更多关于 Entity Framework 以及如何使用它来将数据绑定到 UI 控件的信息......
  • 好的...是否可以将 linq 查询分配给数据表
【解决方案3】:
 DataTable dt = new DataTable();
 dt.Columns.Add("ID", typeof(int));
 dt.Columns.Add("Name", typeof(string));
 DataSet ds = new DataSet();
 ds.Tables.Add(dt);

【讨论】:

    【解决方案4】:

    @Victor,从日期看,我迟到了。如果您现在正在阅读本文,那么这些人想说的是您在不必要地混合技术。从 .Net 3.5 开始,ADO.Net 对象基本上已被 EntityFramework 取代。

    要回答 2011 年 6 月 25 日提出的问题,实际代码应该是这样的:

    列出结果 = SomeQueryResults.ToList();

    就是这样。其余大部分工作由网格完成。您可能必须重写 OrderBy() 函数,但可能就是这样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多