UserManager.FindByName() 抛出 EntityCommandExecutionException。为什么使用 "EXTENT1"."USERNAME1"?
UserManager.FindByName() throwing EntityCommandExecutionException. Why is it using "EXTENT1"."USERNAME1"?
我正在使用 Oracle DB、Entity Framework、Microsoft ASP.NET Identity、OWIN 和 OWIN-MixedAuth。
在 UserManager.FindByName(name)
的执行中,我得到:"EntityCommandExecutionException: An error occurred while executing the command definition." 内部异常是 OracleException: ORA-00904: "Extent1"."USERNAME1": 无效标识符。 “
我在数据库中没有名为 "USERNAME1" 的列是完全正确的,身份框架找不到该列是有道理的。问题是:我不知道为什么要从该列开始寻找。 IdentityUser.UserName 在 DbContext 中显式映射,如下所示:
modelBuilder.Entity<MyUser>().Property(r => r.UserName).HasColumnName("USERNAME");
我在我的代码中搜索了 "USERNAME1" 以防万一我在某处有一个定义错误的魔术字符串,但在我的代码中找不到任何结果。我已经搜索过这个错误,但似乎我是唯一一个从框架内部得到这种错误的人。
任何人都可以想到它获取此列名称的任何地方以及我如何更正它吗?
提前致谢。
当您告诉 EF 一个实体上的 A 列是另一个实体上 B 列的 primary/foreign 键时,就会出现这些 "phantom" 列。如果关系配置错误,会发生的情况是其中一列被复制并添加了一个数字,并且该列用作键,而不是您最初想要的列。这是您的实体如何设置的问题。
我正在使用 Oracle DB、Entity Framework、Microsoft ASP.NET Identity、OWIN 和 OWIN-MixedAuth。
在 UserManager.FindByName(name)
的执行中,我得到:"EntityCommandExecutionException: An error occurred while executing the command definition." 内部异常是 OracleException: ORA-00904: "Extent1"."USERNAME1": 无效标识符。 “
我在数据库中没有名为 "USERNAME1" 的列是完全正确的,身份框架找不到该列是有道理的。问题是:我不知道为什么要从该列开始寻找。 IdentityUser.UserName 在 DbContext 中显式映射,如下所示:
modelBuilder.Entity<MyUser>().Property(r => r.UserName).HasColumnName("USERNAME");
我在我的代码中搜索了 "USERNAME1" 以防万一我在某处有一个定义错误的魔术字符串,但在我的代码中找不到任何结果。我已经搜索过这个错误,但似乎我是唯一一个从框架内部得到这种错误的人。
任何人都可以想到它获取此列名称的任何地方以及我如何更正它吗?
提前致谢。
当您告诉 EF 一个实体上的 A 列是另一个实体上 B 列的 primary/foreign 键时,就会出现这些 "phantom" 列。如果关系配置错误,会发生的情况是其中一列被复制并添加了一个数字,并且该列用作键,而不是您最初想要的列。这是您的实体如何设置的问题。