示例.NET C#MVC项目使用实体框架与数据库优先,多领域架构和基于角色的安全性?

是否有“官方”或“更好”的方式来实现.Net C#MVC项目使用实体框架与数据库优先,多领域架构和基于角色的安全性?

我使用Entity Framework和Database First做了一些MVC项目.因为项目相对简单,所以每当需要查询时,我在控制器中创建实体,直接执行LINQ查询.现在,如果我想实现多关系架构,这是否意味着我需要重构所有这些,并将所有查询代码分离到服务层?即使是一个非常简单的查询?

对于基于角色的安全性,实时时间,UI根据角色而不同.例如,对于admin,应显示所有按钮.但对于普通用户,也许我们只想显示1个按钮.在这种情况下,我通常在视图中使用剃刀语法并在控制器中再次检查角色.这是正确的方法吗?

我想知道在这些情况下是否有一些示例项目.经过一番搜索,我找不到它们.

谢谢

最佳答案 这听起来像很多无关的问题.

>是的,对于任何复杂的解决方案,您确实需要将所有数据库逻辑移出Controller层之外.
>有很多方法可以构建您的应用程序和不同的设计理念.您可以查看this answer的一些想法,但在现实世界中选择正确的架构是一个难题,没有一个适合所有人的解决方案.您必须考虑功能和非功能需求,可维护性/可扩展性需求,最终用户/消费者功能和期望,甚至是用户的个性.建立一个你可以随处复制和应用的好例子是不可能的.
>如果您使用的是基于角色的安全性,则可以在视图中进行检查.决定是否显示该按钮是一个UI问题,因此最终您将在Razor视图中以if语句结束.不同的人可能会争论你是否应该直接在那里检查角色或在模型上存储某些东西以确定应该或不应该显示什么,但最终它几乎是相同的.

点赞