我正在处理与稍微奇怪的数据库接口的应用程序。这个数据库的设计非常糟糕;基本上没有外键(虽然有列引用其他表,但它们没有设置为键),列的命名非常模糊,结构不适合我的那种逻辑。旨在做(主要是,它强制连接操作应该是简单的,并让你通过不必要的大规模表格拖曳可能被拆分的东西)。
不幸的是,我坚持使用这个数据库。它被复制到第三方系统,因此我无法更改表结构或任何内容。不过,我可以添加存储过程和视图。
在应用程序中,我提出了一组可以更轻松地使用的类。我对Entity Framework有相当多的经验,所以我打算使用它。我最初的预感是,我可以向数据库添加视图,以我的类的格式返回内容,然后从那里开始只是假装他们的表。我之前从未尝试过这样的事情,但我并不完全确定如何继续。
如何使用Entity Framework将我的类映射到这些视图?请注意,它有点需要我的POCO类,而不是EF自动生成的任何东西 - 有没有办法告诉EF映射现有的类?
答案 0 :(得分:1)
如果您首先使用代码,那么Entity Framework将在迁移中生成CreateTable
条指令。要使用视图,请将此代码替换为您自己的Sql以生成视图。请参阅此问题的答案:Mapping Database Views to EF 5.0 Code First w/Migrations
我也会configure Entity Framework to use stored procedures。然后,您可以定制插入/更新/删除sql以匹配基础表。同样,您可以通过更改在迁移中为您生成的sql来执行此操作。