在SQL Server中为一个带有ClientId(int,外键)的表。运行程序,一切正常。 将列重命名为ClientID(大写ID)。导入模型ASP.NET MVC Core
Scaffold-DbContext "Server=DESKTOP-XYZ;Database=MyDB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force
并运行程序,我收到错误无效的列名'ClientId1'。
在整个项目中找不到ClientId1
重建无效
将ClientId1(临时)添加到数据库将给出有关“ ClientId2”等的错误。...
无法创建数据库
退出/启动VS2017无效
SQL Server分析器显示带有“ ClientId1”的语句
在一个简单的语句上获取错误(对于我进行更改的表):
var projectList = await context.Project.ToListAsync();
SQL Server分析器显示
SELECT [p].[ID], [p].[ClientID], [p].[ClientId1], [p].[Description], [p].[ExpirationDate], [p].[ImageDirectory], [p].[Name], [p].[Price], [p].[Size], [p].[StartDate], [p].[StatusID], ...
FROM [Project] AS [p]
(正确)生成的Project类类似于(没有ClientId1):
...
public int Id { get; set; }
public int? ClientId { get; set; }
public string Description { get; set; }
public DateTime ExpirationDate { get; set; }
public string ImageDirectory { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public int Size { get; set; }
public DateTime StartDate { get; set; }
public int StatusId { get; set; }
...
如何解决此问题,谢谢您的帮助!
答案 0 :(得分:1)
该问题与列的重命名无关。在大约同一时间,将属性添加到NOT生成的部分Client类中:
public partial class Client
{
...
public List<Project> ProjectList { get; set; }
...
}
这似乎使Linq感到困惑。需要一个额外的[NoMapped] DataAnnotation。因此,以下代码将起作用。
public partial class Client
{
...
[NoMapped]
public List<Project> ProjectList { get; set; }
...
}