实体框架和错误的表名

本文关键字:错误 框架 实体 | 更新日期: 2023-09-27 18:32:49

>我正在尝试从现有数据库创建一个EntityFramework存储库。问题是其中一个表称为"系统"。这会导致 EF 生成的代码出现各种奇怪的编译错误,因为 System 自然不是一个好的类名。

有人有办法解决这个问题吗?就我而言,更改表名称不是一个选项。

实体框架和错误的表名

在我看来,

处理此问题的最简单方法是在从数据库结构导入期间(生成 edmx 文件时)不检查该特定表,像往常一样在所有其他表上使用实体框架,并为该"系统"表使用 SqlQuery 实体的命令执行普通 SQL 查询。您也可以尝试编辑 edmx(在生成它(不包括"系统"表)后,如果可能的话,使用不同的名称手动添加此表,但第一种情况是更快的速度。

尝试这种方式。转到您的ContexName.Context.cs文件

你有这样的错误声明

public virtual DbSet<System> System{ get; set; }

右键单击<System> -->转到声明

然后更改

public partial class System

public partial class SystemTable

终于改变了

 public virtual DbSet<System> System{ get; set; }

public virtual DbSet<SystemTable> SystemTable{ get; set; }

请注意,如果重新生成代码,将覆盖对此文件的手动更改,因此每次都需要重做此操作。