有没有办法告诉EF在执行Update Model From Database
时不要更新单个表的SSDL?
更多细节:
我们正在使用EF 4.3和Db-first方法(因此,edmx和从数据库更新模型)。
我们有一个表,由于某些原因,在SQL Server中没有设置主键,但有一个自动递增的Identity
列,我们可以告诉EF将其用作主键。
由于EF没有在表本身中找到任何主键,因此它在该表的SSDL中生成一个DefiningQuery(并阻止更新/插入)。
我可以轻松删除DefiningQuery(并修改其他EntitySet属性),一切正常。
除非我再做一次Update Model From Database
,否则DefiningQuery又回来了。
有没有办法告诉EF不要更新该单个表的SSDL?
答案 0 :(得分:1)
有没有办法告诉EF不要更新单个表的SSDL 从数据库做更新模型?
不使用Visual Studio中提供的默认设计器。一旦修改了EDMX文件的SSDL部分,就应该手动维护它,或编写一个脚本,每次从数据库运行Update时都会修复它。
或者,您可以购买更强大的设计师或extension to Visual Studio,它将为您提供选择性更新。
无论如何,应该避免你要做的事情。如果数据库归ERP所有,则只能通过ERP编程API进行访问(真正的ERP有一些)。否则,您可能会破坏ERP的功能,破坏ERP数据,导致性能问题甚至导致死锁。