我们正在对Oracle 12c数据库使用Entity Framework 6.2.0,并且一直在遵循数据库优先方法。
许多out表都有一个_ID
列,该列由数据库在插入时生成。通过使用数据库服务器上的默认值TABLE_SEQUENCE.NEXTVAL
来关闭此操作。
在Entity Framework中生成数据库模型后,我仔细研究并将每个_ID
列标记为StoreGeneratedPattern="Identity"
,我们都准备就绪。但是,在对某些数据库进行更改后更新数据库模型时,我们注意到了一个问题。一张桌子特别忘记了此设置,并将其重置回None
。所有其他表都记住StoreGeneratedPattern="Identity"
。
每次我们从数据库更新数据库模型时,都会持续发生这种情况。
Visual Studio仍会说PROBLEMATIC_TABLE_ID
设置了Identity
,但.edmx文件没有。
我的过程一直是更新模型,然后打开.edmx文件,然后手动将{ed(1)}粘贴到该列中。
我已经将该表与数据库中其他表,.edmx,代码库中的表进行了比较,并且我找不到任何会导致该表上的这一列在数据库模型更新时表现不同的东西。
TL; DR:在从数据库更新我们的本地数据库模型后,一个列/表上的StoreGeneratedPattern="Identity"
的值将始终重置,而所有其他值保持不变。 VS仍然说它是StoreGeneratedPattern
,但是.edmx文件中的XML意见不一致,需要手动更新。