我最近经历了改造我的数据库的过程,规范了很多实体。显然,我现在的桌子比以前多了几张。我在网站上使用的很多数据都是只读的,因此使用视图可以很容易地进行非规范化,但是有些实体可以从非规范化检索中受益,但仍需要更新。
这是一个例子。
A User may be a Member
A Member may have a Profile
A Member may have an Account
此外,我还有 3 个进一步的查找表。
总共有 3 个用户表和 4 个成员表。
理想情况下,我可以从上面的表中创建 2 个视图。
但是,用户需要更新,属于成员的实体也是如此。此外,还有 6 个与用户/成员相关联的单独表格,即 FavouriteCategories,它们也需要不时检索和更新。
我正在努力想出最好、最有效的方法。
我不能简单地使用视图并将所有实体和查找带入模型,但我将依赖 EF 来生成检索查询。我读过的东西表明 EF 并不擅长处理连接数据。
我可以添加视图和表格,仅使用表格进行更新。由于模型的重复、复杂性以及对 EF 模型功能的利用不足,这似乎很草率。
也许我可以使用只读视图进行数据检索并创建存储过程。我相信将 EF 与存储过程一起使用的过程有点麻烦,所以我可能会保持存储过程与 EF 不同,并简单地传递参数并通过传统方法调用 SP。这又像是一个中途的房子。
我对 .net 或 EF 没有那么丰富的经验,因此对于我上面提到的方法或任何更好的技术来实现这一点,我将不胜感激。我不想在这个阶段破解 edmx 文件,因为......好吧,这只是错误的。
我有一些实体可以从正确的解决方案中受益。用户示例是最简单的示例之一,因此从正确的方法中可以获得很多好处。
帮助和建议将不胜感激。