我有以下问题,我必须连接一个非常丑陋而非规范化设计的退出数据库。 所以我有很多不是Null的ForeignKeys,而是一个值为0(零)的外键,因此它是一个空引用。
但在某些表格中,我还有Nullable FK,但也有零值。
我可以使用某些约定或其他内容自定义实体框架。因此EF知道,如果列不是Null,我说在Fluent中Reference是可选的,它会在非空列中写入一个零。
唯一的解决方案是为读访问写入视图,为写访问创建Sps以在数据库上进行有效抽象。但是有超过500个表,这是很多工作。
有人想要一些更好的解决方案。
附加通知,数据库处于重构中,因此在一两年内它被标准化,并且没有那么难看的设计。
数据库系统ist MsSql
抱歉我的英语不好。
答案 0 :(得分:1)
所以EF知道,如果列不是Null,我说引用是可选的 在Fluent中,它在非空列中写入零。
插入
时我会这样写myTable.destFK_Field = sourceFK_Field ?? 0
SQL等价物:
myTable.destFK_Field = COALESCE(sourceFK_Field,0)
假设您正在从EDMX生成模型,我认为没有太多选项可以添加到模型中。