首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在没有外键的数据库上使用实体框架--如何“伪造”它们?

在没有外键的数据库上使用实体框架--如何“伪造”它们?
EN

Stack Overflow用户
提问于 2014-09-18 20:55:55
回答 1查看 357关注 0票数 1

在我目前的工作中,我无止境地被前任做出的一系列决定所困扰,这些决定的高潮是:

  1. 所有的主键都是Guids (本身并不是件坏事)
  2. 数据库中没有外键(这由业务逻辑处理)
  3. 当“外键”为空时,我们使用的不是null,而是Guid.Empty。字段都是空的,但是业务逻辑和报告的大堆依赖于空字段Guid.Empty

我花了很长一段时间在我的大脑里,试图给这个模型增加一些理智。我的想法是

  1. 不能只向数据库添加外键。这将立即打破吨的功能,是不可行的。
  2. 我们最近一直在迁移到使用实体框架。我读过关于模拟EF模型的文章,这样就可以在代码外键中伪造,但是这会被数据库中所有的空Guid所击败,并且会生成一个键找不到的错误。
  3. 我已经考虑过在每个表中添加“空”记录,这样空guid就有了指向的东西,但是这给了我们在所有东西上额外的空白行(比如当显示一个列表时),并且打破那些显然依赖于某些查询来返回空guid的报告。
  4. 我唯一模糊的功能想法是,我可以修改实体框架的一部分,用特殊的规则来处理空的Guid,但是这让我充满了悲伤的想法,更不用说我无法可靠地这样做了。

我真的很希望至少能够使用实体框架的延迟加载和Include功能来获取相关的记录,但考虑到我们当前的数据库模式/模型,我想不出这是可能的。有人有什么建议/想法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-09-18 22:33:18

这个链接应该帮助你开始工作,这将帮助你在设计师中自己绘制关系图。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25922155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档