我在visual studio 2010 SP1中创建了一个EDMX。它是从现有数据库构建的。
有许多数据库生成的列(即,使用GETDATE()作为默认值不可为空。)
EDMX似乎没有检测到这些列,也没有将“StoreGeneratedPattern”设置为“Computed”。我将不得不手动设置这些东西才能工作!
数据库非常大,所以这并不理想。
这是EDMX一代的错误还是我可能做错了什么?
非常感谢 卡尔
答案 0 :(得分:1)
这不是错误。它只是这样工作,因为默认约束设置列到当前日期不是计算列。每次保存记录时,计算列都会更改其值 - 例如时间戳。此外,无法从您的应用程序设置使用StoreGeneratedPattern
设置为Identity
或Computed
的属性。您的列接受其他值,因此EF无法使其默认生成存储 - 您可以自行决定。
如果要对所有记录使用数据库的默认值,请将StoreGeneratedPattern
设置为Identity
。它将确保在插入期间设置和查询该值。将模式设置为Computed
将在每次更新后创建不必要的查询。