0

II にはプロジェクト (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();

だから、私は例外をキャッチするために and を使用tryし、例外が何であるかを確認するために使用します。catchConsole.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.config ファイルからの抜粋です。

<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>

プロジェクト構造の一部を以下に示します。

+ データアクセス層
  - Products.cs
+ スタイル
  - サイト.css
+ Default.aspx
  - Default.aspx.cs
  - Default.aspx.designer.cs
+ mdlAdventureWorks.edmx
  -mdlAdventureWorks.Designer.cs

mdlAdventureWorks.edmx ファイルと関係があるのではないかと疑っていますが、プロジェクトは私が作成したものではないため、問題をさらにトラブルシューティングして診断する方法がわかりません。

与えられたアドバイスに感謝します。

4

1 に答える 1

0

これを試して、データベースから実際に何かが返されているかどうかを確認してください。

    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();
    }
于 2013-01-04T03:20:23.640 に答える