使用Entity Framework 5、Visual Studio 2010和Entity Framework Power Tools (Beta 2)扩展。
这是我的数据库表结构:
我使用了上述扩展的逆向工程师代码优先功能,它生成了 POCO 类和一些“映射”文件(不确定这是否是正式用语)和单个 DbContext 派生类。除了我接下来描述的变化之外,所有这些生成的类都是由电动工具生成的。
在 Category.cs 文件中,我添加了以下代码来帮助将对象图展平一点:
private ICollection<Product> m_Products = null;
public ICollection<Product> Products
{
get
{
if (m_Products == null)
{
m_Products = new List<Product>();
foreach (var categoryProduct in CategoryProducts)
{
m_Products.Add(categoryProduct.Product);
}
}
return m_Products;
}
set { m_Products = value; }
}
我得到以下异常,我知道这一定与映射有关,但我无法完全弄清楚这一点。
Unhandled Exception: System.Data.EntityCommandExecutionException: An error occurred while
executing the command definition. See the inner exception for details.
---> System.Data.SqlClient.SqlException:
Invalid column name 'Category_CategoryId'.
如果我需要发布更多信息,例如映射的细节,请告诉我,我会做的。我想尽可能地简短,但我意识到我已经省略了一些东西,对于那些不熟悉该工具生成的代码的人来说,可能会让人们想要了解更多细节。