我想在实体框架中做一个简单的(或不做)数据访问控制。我看到它在 EF 中并不那么容易支持,因为 EF 实际上并没有很好地支持模式和视图。
我想对实体的某些列进行有条件的访问。
在 Sql Server 中,使用模式很容易实现。例如,我可以在他的模式中为用户创建一个视图,其中缺少一些列。其他用户(例如管理员)将在其架构中拥有所有列。它们都可以具有相同的视图名称,例如:getUsers,但只有从 dbo 模式(dbo.getUsers)执行它的管理员才能拥有所有列,而其他列只有一些。当然在Sql Server中也可以通过存储过程来实现。
如何在 EF 中实现数据访问的功能?
我想做一个可以像这样使用的函数:
-- function checks user role and returns appropirate columns/entity
var result = getAppropirateDataForThisUser("getUsers", user);
当然,这只是为了说明问题。用法可以完全不同。