我有一个项目 - 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.config文件的摘录:
<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 + Styles - Site.css + Default.aspx - Default.aspx.cs - Default.aspx.designer.cs + mdlAdventureWorks.edmx - mdlAdventureWorks.Designer.cs
我怀疑它可能与mdlAdventureWorks.edmx文件有关,但我不知道如何进一步排除故障并诊断问题,因为项目不是由我编写的。
感谢任何建议。
答案 0 :(得分: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();
}