常见问题

    建议只生成一次代码,你应该以现有字段为例,在行(row)、 列(column)和表单(form)类手动添加新字段。

    但是如果你做了太多的更改,并且再次生成代码。Sergen 将启动 Kdiff3 让你合并更改,以便不会覆盖你之前对生成代码所做的更改。


    在 Sergen 中,我有关于 KDiff3 的错误,如何定位该错误呢?

    Sergen 在其默认程序文件目录下查找 KDiff3。如果你还没有该程序,请安装它。

    如果 Kdiff3 在另一位置,编辑你的解决方案目录下的 Serenity.CodeGenerator.config。这是一个包含 Sergen 设置和首选项的 JSON 文件。

    如何从 UPDATE 权限中分离出 INSERT 权限?:

    在行(rows)中使用 [InsertPermission] 和 [UpdatePermission] 替代 [ModifyPermission] 特性。

    默认情况下,插入、保存处理程序(INSERT, save handler)按如下顺序检索行中的权限:

    • 2) ModifyPermission
    • 3) ReadPermission

    类似的,更新、保存处理程序(UPDATE, save handler)按如下顺序检索行中的权限:

    • 1) UpdatePermission
    • 2) ModifyPermission

    删除处理程序(delete handler)按如下顺序检索行中的权限:

    • 1) DeleteInsertPermission
    • 2) ModifyPermission
    • 3) ReadPermission

    列表/检索处理程序(LIST / RETRIEVE handler)只有一个权限被选中:

    • 1) ReadPermission

    怎样发布 Serenity 应用程序?

    Serenity 应用程序使用 x-copy 部署。在部署之后,你只需要设置安装程序的连接字符串。你也可以从部署中排除源文件。

    请确保在 SiteInitialization.Migrations 文件的 RunMigrations 方法中删除了数据库迁移安全检查。

    你也可以使用 Visual Studio 的发布功能。但需保证所有内容文件(content files)的生成操作设置为 Content(而不 None)。

    如何在 DecimalEditor 中允许负值?

    DecimalEditor 特性设置 MinValueMaxValue 属性:

    如何重新加载/刷新检索编辑器数据?

    使用 Q.ReloadLookup(“MyModule.MyLookupKey”) 重新加载检索其 key 的结果。

    如何为枚举创建过滤编辑器?


    如何在新记录模式下把日期编辑器设置为当前日期?

    在表单定义中为日期时间编辑器的日期添加 [DefaultValue(“today”)] 或者 [DefaultValue(“now”)]。

    另一做法是在对话框中处理,重写 AfterLoadEntity