具有零值的实体框架外键

时间:2015-10-07 20:17:01

标签: c# sql-server entity-framework fluent

我有以下问题,我必须连接一个非常丑陋而非规范化设计的退出数据库。 所以我有很多不是Null的ForeignKeys,而是一个值为0(零)的外键,因此它是一个空引用。

但在某些表格中,我还有Nullable FK,但也有零值。

我可以使用某些约定或其他内容自定义实体框架。因此EF知道,如果列不是Null,我说在Fluent中Reference是可选的,它会在非空列中写入一个零。

唯一的解决方案是为读访问写入视图,为写访问创建Sps以在数据库上进行有效抽象。但是有超过500个表,这是很多工作。

有人想要一些更好的解决方案。

附加通知,数据库处于重构中,因此在一两年内它被标准化,并且没有那么难看的设计。

数据库系统ist MsSql

抱歉我的英语不好。

1 个答案:

答案 0 :(得分:1)

  

所以EF知道,如果列不是Null,我说引用是可选的   在Fluent中,它在非空列中写入零。

插入

时我会这样写
myTable.destFK_Field = sourceFK_Field ?? 0

SQL等价物:

myTable.destFK_Field = COALESCE(sourceFK_Field,0)

假设您正在从EDMX生成模型,我认为没有太多选项可以添加到模型中。