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();
因此,我使用try
和catch
来捕获异常,并使用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="Data Source=.'sqlexpress;Initial Catalog=AdventureWorksLT2008R2;Integrated Security=True;MultipleActiveResultSets=True"" 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有关。但我不知道如何进一步排除和诊断问题,因为这个项目不是我写的。
感谢任何建议。
试试这个,看看你是否真的从数据库中得到了什么:
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();
}