我尝试从现有数据库创建EntityFramework存储库。问题是其中一个表被称为" System"。这会导致EF生成的代码出现各种奇怪的编译错误,因为System自然不是一个好的类名。
任何人都有办法解决这个问题?在我的情况下,更改表名不是一个选项。
答案 0 :(得分:0)
在我看来,处理此问题的最简单方法是在从数据库结构导入期间(当您生成edmx文件时)检查该特定表,在每个其他表上使用实体框架并使用“系统”表使用SqlQuery Entity的命令执行纯SQL查询。您也可以尝试编辑edmx(在生成它之后排除“System”表)并使用不同的名称手动添加此表(如果可能),但第一种情况会更快。
答案 1 :(得分:0)
尝试这种方式。转到ContexName.Context.cs
文件
你有这样的错误声明
public virtual DbSet<System> System{ get; set; }
右键点击<System>
- &gt;转到声明
然后改变
public partial class System
到
public partial class SystemTable
最后改变
public virtual DbSet<System> System{ get; set; }
到
public virtual DbSet<SystemTable> SystemTable{ get; set; }
请注意,如果重新生成代码,将覆盖对此文件的手动更改,因此您每次都需要重做此操作。