首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体框架5-无效列名-逆向工程代码

实体框架5-无效列名-逆向工程代码
EN

Stack Overflow用户
提问于 2013-01-03 15:43:49
回答 3查看 9.2K关注 0票数 3

使用实体框架5Visual 2010实体框架电动工具(Beta 2)扩展。

以下是我的数据库表结构:

我使用了上述扩展的反向工程代码第一函数,它生成POCO类和一些“映射”文件(不确定这是否是正式术语)和一个DbContext派生类。除了我接下来描述的变化之外,所有这些生成的类都是由power工具生成的。

在Category.cs文件中,我添加了以下代码以帮助稍微平平对象图:

代码语言:javascript
复制
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; }
}

我得到了下面的异常,我知道这一定与映射有关,但我无法完全解决这个问题。

代码语言:javascript
复制
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'.

如果我需要发布更多的信息,比如映射的细节,就让我知道,我会这么做的。我想尽量简短,但我意识到,对于那些不熟悉该工具生成的代码的人来说,我忽略了一些东西,可能会留下更多的细节。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-03 15:55:14

您已经向模型添加了一个导航属性,因此EF试图将其映射到数据库。“代码优先”是指您的代码模型定义了数据库架构。

尝试将[NotMapped]属性添加到助手属性中,告诉EF忽略它们。

票数 6
EN

Stack Overflow用户

发布于 2013-01-03 16:09:42

如果您已经自动创建了DB方案,并且没有使用像(DropDatabaseAlways/DropDatabaseIfModelChanges)这样的策略--换句话说:您真的在逆向工程中,您似乎必须在“类别”表中手动添加列"CategoryId“。

如果您不想使用该属性(我的意思是DB),您可以使用数据注释[NotMapped]或Fluent modelBuilder.Entity<Category>().Ignore(x=> x.CategoryId)

最后,有可能在映射中出现问题。我不知道您是在使用数据注释还是Fluent API,但是EF可能会自动查找某些db列(从模型派生的逻辑行为),但找不到它。在这种情况下,我建议您修改映射。

票数 2
EN

Stack Overflow用户

发布于 2013-04-05 01:14:24

OP已经解决了他们的问题,但是我也遇到了一个类似的错误。因此,这是为了防止其他人需要它:

在0.1实体之间的关系的一侧,我丢失了一个导航属性。一旦我向丢失它的实体添加了一个适当的导航属性,问题就解决了。

更多细节:我有两个实体,使用FK建立0..1关系。实体A(父母)从FK到实体B(子)。子实体B对实体A具有导航属性,但是A没有对B具有导航属性。在添加此属性后,问题得到了解决。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14142186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档