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