【问题标题】:Invalid column name after mapping映射后列名无效
【发布时间】:2011-12-30 19:57:44
【问题描述】:

我在我的一张表中添加了一个 (bit\bool) 列 IsController

ALTER TABLE P_USER ADD IsController bit NOT NULL DEFAULT 0

更新 edmx 并将 IsController 添加到 MY_USER 实体,然后将其名称更改为 IsControllerX 并将其映射到表中的 IsController

并将其设置在 solution.domain.business cs 文件中:

   public virtual bool IsControllerX { get; set; }

调试时出现错误:

执行命令定义时出错。见 有关详细信息的内部异常。 InnerException:列名无效 'IsController'。

错误在于IsController 而不是IsControllerX!那就是我映射到的列的名称——数据库中的列的名称!

谁能解释我为什么会收到这个错误?

【问题讨论】:

    标签: entity-framework entity-framework-4 entity-framework-4.1


    【解决方案1】:

    如何更新您的模型和生成的类??

    在 EDMX 中,您应该从上下文菜单中选择 Update Model From Database 选项,然后在更新向导中,您应该选择已修改的表:

    这样做会正确更新您的 EDMX,并且在我的场景中运行良好。你是这样做的,还是失败了??还是你只是手动做的??

    【讨论】:

    • 是的,我完全做到了 - 正是一步一步 - 我有这个错误 - 我必须说当我进行更新时它给了我一个警报:消息 1 表/视图'od.dbo .V_OD_LINK' 没有定义主键。已推断出密钥,并将定义创建为只读表/视图。 - 我不认为这是原因?可以吗?
    • 那个视图和你在这里使用的那个表有关系吗??
    • 我必须告诉你我是实体框架的新手,我不使用视图我只使用数据库中的表 - 我添加的列在表中而不是在视图中
    • 我刚刚发现了问题!!!你能告诉我如何在上面的屏幕上选择正确的数据库吗?因为我有 4 个数据库,它不是从正确的数据库更新的
    • 每个模型都有一个连接字符串 - 通常在 web.config 中。这决定了您的模型指向的位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 2015-05-11
    • 1970-01-01
    • 2018-09-29
    相关资源
    最近更新 更多