Product.cs中的data. tolist()指的是AdventureWorks项目中的哪些数据?

本文关键字:项目 AdventureWorks 数据 Product data 中的 tolist cs | 更新日期: 2023-09-27 17:50:32

我有一个项目- AdventureWorks和一个文件- Product.cs,其中包含以下代码:

    public static List<ProductCategory>  GetCategories()
    {
        var db = new AdventureWorksEntities();
        var data = from o in db.ProductCategories orderby o.Name select o;
        return data.ToList();
     }

当遇到以下代码行

时抛出异常EntityException was unhandled by user code
        return data.ToList();

因此,我使用trycatch来捕获异常,并使用Console.WriteLine来查看异常是什么,它将给我

A first chance exception of type 'System.Data.EntityException' occurred in System.Data.Entity.dll

和列表框将为空。

在Default.aspx.cs文件中,它包含:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            List<ProductCategory> data = DataAccessLayer.Products.GetCategories();
            lbCategories.DataSource = data;
            lbCategories.DataBind();
        }
        else
        {
            if (lbCategories.SelectedIndex != -1)
            {
                string category = lbCategories.SelectedValue;
                Response.Redirect("/Products.aspx?id=" + category);
            }
        }
    }

它似乎会从DataAccessLayer中检索某种形式的数据/信息。

以下内容摘自Web。配置文件:

<connectionStrings>
  <add name="AdventureWorksEntities" connectionString="metadata=res://*/mdlAdventureWorks.csdl|res://*/mdlAdventureWorks.ssdl|res://*/mdlAdventureWorks.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.'sqlexpress;Initial Catalog=AdventureWorksLT2008R2;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

下面显示了部分项目结构:

<>之前+ DataAccessLayer——Products.cs+风格——Site.css+ default . aspx——Default.aspx.cs——Default.aspx.designer.cs+ mdlAdventureWorks.edmx——mdlAdventureWorks.Designer.cs之前

我怀疑这可能与mdlAdventureWorks有关。但我不知道如何进一步排除和诊断问题,因为这个项目不是我写的。

感谢任何建议。

Product.cs中的data. tolist()指的是AdventureWorks项目中的哪些数据?

试试这个,看看你是否真的从数据库中得到了什么:

    public static List<ProductCategory> GetCategories()
    {
        var db = new AdventureWorksEntities();
        try
        {
            if (!db.ProductCategories.Any())
            {
                Console.WriteLine("Nothing in DB for ProductCategories");
            }
        }
        catch (Exception ex)
        {
           Console.WriteLine(ex.ToString());
        }
        var data = from o in db.ProductCategories orderby o.Name select o;
        return data.ToList();
    }