C# 实体框架 一个变量映射到两个数据库列
本文关键字:两个 数据库 映射 一个 实体 框架 变量 | 更新日期: 2023-09-27 17:55:19
就像问题标题所说的那样,我有两个数据库列映射到一个变量(或者看起来是这样),我希望纠正这一点。
以下是我的实体的属性:
[Required, AuditField("Project", typeof(Project))]
public Guid Project_Id { get; set; }
public virtual Project Project { get; set; }
在我的数据库中,我曾经有:
CONSTRAINT [FK_dbo.Tasks_dbo.Projects_ProjectId] FOREIGN KEY ([Project_Id]) REFERENCES [dbo].[Projects] ([Id])
以及
CONSTRAINT [FK_dbo.Tasks_dbo.Projects_ProjectId] FOREIGN KEY ([Project_Id1]) REFERENCES [dbo].[Projects] ([Id])
由于重命名有问题。我想把它减少到一个Project_Id,但我不确定如何。如果我删除这些语句之一(以及相关的 FK),特别是Project_Id,我会收到以下错误:
System.Data.Entity.Core.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details. ---> System.Data.SqlClient.SqlException: Invalid column name 'Project_Id'.
列名"Project_Id"无效。
但是,如果我将其重命名为Project_Id1并重新运行,则会出现以下错误:
System.Data.Entity.Core.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details. ---> System.Data.SqlClient.SqlException: Invalid column name 'Project_Id1'
当我同时同时拥有两者时,它正在起作用,这就是导致我之前得出的结论的原因。我一直无法在StackOverflow或其他任何地方找到相关帖子,因此非常感谢任何帮助。
重新添加两者,它再次工作。我现在只是保持原样。