我在文档中找不到任何关于此的信息,所以我会问这里。 breeze如何处理数据库列默认值?我在数据库中需要列,但在数据库列定义中也提供了这些列的默认静态值。通常,我可以在这些列中插入null,新记录将获得默认值。但是,breeze似乎并不知道数据库列的默认值,并且这些列中具有null的实体在保存时无法验证。
谢谢, 的Mathias
答案 0 :(得分:0)
尝试通过将 StoreGeneratedPattern =“Computed”属性添加到数据库中具有默认值的列来编辑edmx xml。
修改强> 的 实际上,在编辑xml之前,请尝试在模型编辑器本身中将 StoreGeneratedPattern 属性设置为 Computed 。
答案 1 :(得分:0)
这已在Breeze 1.4.6(或更高版本)中修复,现已上市。
目前Breeze中存在一个错误,应该在下一个版本中修复,大约一周内。当此修复程序进入时,breeze将遵循它在EntityFramework数据模型中找到的任何defaultValues。
虽然一个问题是通过属性编辑器很容易将'defaultValues'变成Model First Entity Framework模型,但实际上很难将它变成Code First EF模型,除非你使用流畅的配置。不幸的是,EF在构造Code First模型元数据时忽略[DefaultValue]属性。
您现在可以使用的一种解决方法是将'defaultValue'直接戳到任何dataProperty上。类似的东西:
var customerType = myEntityManager.metadataStore.getEntityType("Customer");
var fooProperty = customerType.getProperty("foo");
fooProperty.defaultValue = 123;