VSentity framework中的Oracle实体不会更新代码中的主键

我有一个名为Tree的实体,它有一个名为Id的主键(使用StoreGeneratedPattern = Identity),当使用以下代码时,正确地插入到数据库中。

using(TestContainer tss = new TestContainer()) { Tree tree = new Tree() { Name = "TestTree" }; tss.Trees.AddObject(tree); tss.SaveChanges(); } 

我有一个后备序列+触发器来处理自动递增的主键Id。 我已经validation这实际上正确插入数据库。

调用tss.Refresh(System.Data.Objects.RefreshMode.StoreWins, tree); 不更新对象(’Id’字段仍为0)。 有任何想法吗?

                             

使用XML编辑器打开.edmx文件,并查找以下行开头的部分:

  

下面应该是一个EntityType标记,其中是数据库表的定义。 确保您的ID列的属性中包含StoreGeneratedPattern =“Identity”

在这个SSDL部分下面是一个类似的CSDL部分,但定义了代表该实体的C#对象。 视觉设计师似乎只在本节中填写StoreGeneratedPattern,而不是SSDL部分。

编辑样本

这是一个Employee实体的EDMX文件示例,只有ID,FirstName和LastName属性。 ID是您希望由数据库自动生成的字段。 请注意,有两个不同的地方需要StoreGeneratedPattern。