实体框架和错误的表名
本文关键字:错误 框架 实体 | 更新日期: 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; }
请注意,如果重新生成代码,将覆盖对此文件的手动更改,因此每次都需要重做此操作。