如何处理CodeFluent实体业务层和数据库层概念兼容性?

时间:2016-05-24 13:04:31

标签: codefluent

关于实体/表关系和在数据库层上强制执行的外键,业务和数据层之间的概念兼容性存在问题。

我正在使用CodeFluent MySql Producer,但我相信其他Db生产商的行为也一样。

问题涉及实体之间的一对多简单关系,它们作为INT数据类型字段映射到db,并强制执行适当的外键。

我遇到的问题是:在.NET的业务层上,实体的“链接”属性被映射为整数类型,默认值为-1(减1)。

这意味着,当两个实体的链接信息不存在(不是必需的)时,业务层将-1作为链接属性的内容,并且此内容-1也是持久的到对应表上的数据库字段。

我需要了解的问题。当我在数据库中有-1作为内容时,关联的外键是不相关/不符合的。这应该在数据库端设置为NULL,而不是-1。在关系的OTHER目标表的任何行中没有-1内容作为主键。

我遇到的一个实际困难是:我无法在使用codefluent生成的应用程序填充的数据库之间使用数据同步脚本,因为在数据同步脚本开头删除外键后,我无法在以后重新创建它们因为所有-1s(减1)代替NULL,作为表示2个表之间关系的字段中不存在信息的规则...

你能帮我理解和解决这个问题吗?

由于

1 个答案:

答案 0 :(得分:1)

当您使用MySql时,您必须在配置文件(app.configweb.config)中添加一个属性,以默认值添加到{{ 1}}:

NULL