【问题标题】:ORA-00904: "Extent1"."IsModified": invalid identifier,ORA-00904: "Extent1"."IsModified": 无效标识符,
【发布时间】:2015-03-11 08:43:57
【问题描述】:

从有效的 EDMX 生成 CodeFirst 类。当我尝试连接数据库时,出现此错误。它正在寻找一些不在表中的列。这些列也不在 POCO 和 Fluent Mapping 类中。

适用于 EDMX,只有 Codefirst 有问题

为什么在查询中添加下面的列?是否有任何属性、方法可以禁用这些列被包含?

因此我得到以下错误。

An error occurred while executing the command definition. See the inner exception for details.
Inner Exception:ORA-00904: "Extent1"."IsModified": invalid identifier

    public TestContext() :
        base(GetDefaultConnection(), true)
    {
        Database.SetInitializer<TestContext>(null);

        this.Database.Log = Console.Write; 
        Configure();
    }


SELECT 
"Extent1".USERID,
"Extent1".FIRST_NAME,
"Extent1".LAST_NAME,
"Extent1".EMAIL_ADDRESS,
"Extent1".PHONE_NO,
"Extent1".FAX_NO,
"Extent1".ID,
"Extent1"."DisableEvent",
"Extent1"."RowNumberValue",
"Extent1"."IsNew",
"Extent1"."IsModified"
FROM USERS "Extent1"
WHERE (((UPPER("Extent1".USERID)) = :p__linq__0) OR ((UPPER("Extent1".USERID) IS NULL) AND (:p__linq__0 IS NULL))) AND ROWNUM <= 1
-- p__linq__0: 'SYSADM' (Type = String, Size = 6)
-- Executing at 3/11/2015 14:25:40 +05:30

下面的列不在实际表格中。

 "Extent1"."DisableEvent",
"Extent1"."RowNumberValue",
"Extent1"."IsNew",
"Extent1"."IsModified"
FROM USERS "Extent1" 

【问题讨论】:

  • 你的问题是什么?
  • 修改了我的问题。仍然面临问题....

标签: ef-code-first entity-framework-6


【解决方案1】:

根据我所看到的,我可以说这些行用于 UOW(工作单元)实现。

基本上这些字段用于分页 - RowNumberValue,IsNew 用于标记已添加的实体,IsModified 用于实体待更新。

如果此答案仍然正确,则 ODP https://stackoverflow.com/a/23307234/79379 不支持 ef6

【讨论】:

  • 但实际表没有这些列。流畅的映射类也没有这些。看起来 EF 代码包含它们。
  • 是的,它们包含在框架中,用于上述目的。这就是 ORM 的工作原理。
  • @Floradue88,但应该有一些选项不正确。我只对现有数据库使用 codefirst 方法来解决这个问题。它工作正常,使用 edmx 方法。我也无法将这些列添加到我现有的 400 多个表中:(与 codefirst 方法一起使用
  • 您不需要添加它们。你需要先有一个数据库:asp.net/mvc/overview/getting-started/database-first-development/…
猜你喜欢
  • 2018-10-06
  • 1970-01-01
  • 1970-01-01
  • 2021-08-08
  • 2022-01-22
  • 2011-08-27
  • 2011-04-21
  • 2019-06-29
  • 2013-10-20
相关资源
最近更新 更多