C# &引用;“从数据库更新模型”;向导正在删除重命名的POCO类的映射

C# &引用;“从数据库更新模型”;向导正在删除重命名的POCO类的映射,c#,oracle,entity-framework,visual-studio-2012,ef-database-first,C#,Oracle,Entity Framework,Visual Studio 2012,Ef Database First,我正在使用EF5构建一个与现有Oracle数据库对话的应用程序。我不允许更改数据库模式的任何部分。我使用VS2012向导从数据库中生成了模型,所有类都以Oracle对应类命名 数据库中对象的命名非常丑陋且不一致,因此我想重命名POCO类和属性。我可以很容易地从EDM设计师那里做到这一点。结果,我得到了整齐命名的类和属性名,它们从数据库映射到命名为表的表。我可以成功地执行查询,并且一切工作都很顺利。正是我想要的 但是,当我需要向模型添加新表时,我会运行“从数据库更新模型”向导并检查要导入的其他表。

我正在使用EF5构建一个与现有Oracle数据库对话的应用程序。我不允许更改数据库模式的任何部分。我使用VS2012向导从数据库中生成了模型,所有类都以Oracle对应类命名

数据库中对象的命名非常丑陋且不一致,因此我想重命名POCO类和属性。我可以很容易地从EDM设计师那里做到这一点。结果,我得到了整齐命名的类和属性名,它们从数据库映射到命名为表的表。我可以成功地执行查询,并且一切工作都很顺利。正是我想要的

但是,当我需要向模型添加新表时,我会运行“从数据库更新模型”向导并检查要导入的其他表。它突然在“删除”选项卡下列出了我重命名(但仍然正确映射)的类,说在数据库中找不到它们。当我单击Finish时,我现有的类将被取消映射,我必须手动将每个属性重新映射到其相应的DB列。。。或从版本控制回滚到EDMX文件的早期版本

我正在寻找您认为最优雅的解决方案,因为我需要应用程序尽可能可维护。我强烈支持一种方法,它允许我从数据库自动生成新类,同时保留现有的重命名对象及其映射

  • 我是否忽略了某种防止更新模型向导删除现有映射的方法
  • 我应该使用不同的方法来重命名生成的类吗
  • 我是否应该让生成的类保持不变,而是构建名称合理的包装类,这些包装类将公开给应用程序的其余部分
  • 我是否应该避免自动生成,而是采用代码优先的方法?这是一个非常不利的选择,因为我需要在手动模型编码和映射上花费尽可能少的时间。添加对象将是一项非常频繁的任务
  • 我是否应该完全使用不同的ORM

我自己发现了罪魁祸首:由于我在某处读到一篇文章中的建议,运行“从模型生成数据库”向导。它将模型的所有基础表和列名更改为SQL Server标准名称([dbo].[Customers].[CustomerID]等)