我正在开发一个Web API服务(在Visual Studio 2013中),并且在我的解决方案中添加了ADO.NET实体数据模型(数据库优先)。
我包含的所有表都正确地创建在edmx图中。
然后我做了一些更改:我在源数据库中添加了两列,删除了一列。因此,当我尝试从数据库更新模型时,会添加两个新列,而删除的列仍在模型中,并显示消息:
错误11009:未映射属性“image"。
null
是否可以手动从模型中删除此属性?或者有没有另外一种更干净,更安全的方式来做到这一点?
当然,正如其他人所说,改变方法可能是处理EF和DB的更好方法,但是从您首先需要数据库这一事实出发,我认为使用数据库优先模型有其优点,其中之一(这取决于您第二个问题的答案)是EDMX是按原样处理的,这意味着作为一段生成的代码,您可以在每次需要或想要的时候刷新,销毁和重新创建它,而不会失去任何修改。
现在,正如我前面所说的,生成代码的性质意味着您对EDMX所做的每一个更改都将丢失,因此您可以删除一个属性,但是模型和db并不是透明地同步的。
我想最好的办法是
即使这种方式可能是一种简单化的方法,也不会首先欺骗数据库的本质。
需要说明的是:首先使用数据库,可以通过使用部分类来向DbContext添加内容,并使用所涉及的实体来添加功能和行为。