我已经在visual studio 2010 SP1中创建了一个EDMX。它是从现有数据库构建的。
有许多数据库生成的列(即,以GETDATE()作为默认值的非空列)。
不过,EDMX似乎没有检测到这些列,也没有将"StoreGeneratedPattern“设置为"Computed”。我将不得不手动设置这些才能让它工作!
数据库非常大,所以这并不理想。
这是EDMX生成的bug,还是我可能做错了什么?
非常感谢,卡尔
发布于 2012-06-28 16:48:22
这不是bug。它只是以这种方式工作,因为将列设置为当前日期的默认约束不是计算列。每次保存记录时,计算列都会更改其值-例如timestamp。此外,不能在应用程序中设置使用设置为Identity或Computed的StoreGeneratedPattern的属性。您的列接受其他值,因此EF不能使其存储默认生成的值-这取决于您的决定。
如果希望对所有记录使用数据库中的默认值,请将StoreGeneratedPattern设置为Identity。它将确保在插入期间设置和查询值。将模式设置为Computed将在每次更新后创建不必要的查询。
https://stackoverflow.com/questions/11233248
复制相似问题