visual-studio-2010 - Entity Framework 5 - 列名无效 - 逆向工程师代码优先

标签 visual-studio-2010 entity-framework ef-code-first entity-framework-5

使用 Entity Framework 5Visual Studio 2010Entity Framework Power Tools (Beta 2) 扩展。

这是我的数据库表结构:

Database Table Structure

我使用了上述扩展的 Reverse Engineer Code First 功能,它生成 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'.

如果我需要发布更多信息,例如映射的细节,请告诉我,我会做的。我想尽可能简短,但我意识到我省略了一些内容,对于那些不熟悉该工具生成的代码的人来说,可能会让人们想要了解更多细节。

最佳答案

您已将导航属性添加到模型中,因此 EF 正在尝试将其映射到您的数据库。 “代码优先”意味着您的代码模型定义了您的数据库架构。

尝试将 [NotMapped] 属性添加到您的帮助程序属性中,以告诉 EF 忽略它们。

关于visual-studio-2010 - Entity Framework 5 - 列名无效 - 逆向工程师代码优先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14142186/

相关文章:

asp.net-mvc - 使用非身份 ID key 在 Code First 上插入失败

sql-server - 如何从 Entity Framework 访问FileTables?

.net - .NET 4.0 不包含 .NET 2.0 吗?

C++注入(inject)代码

C4996(函数不安全)警告 strcpy 但不是 memcpy

c# - SelectedItem 仅更新 WPF 数据库中的第一行

c++ "Run-Time Check Failure #2 - Stack around the variable ' 对'已损坏。”

c# - 通过 WPF MVVM 中不断刷新的存储库持久化 EF 更改

.net - Oracle Entity Framework 提供程序

c# - MVC - Entity Framework - 这属于哪里?