Entity Frameworkで単純な(またはそうでない)データアクセス制御を作成したいと思います。EFは実際にはスキーマとビューを適切にサポートしていないため、EFではそれほど簡単にはサポートされないことがわかりました。
エンティティのいくつかの列に条件付きアクセスを行いたい。
SQL Serverでは、スキーマを使用して簡単に実現できます。たとえば、一部の列が欠落しているスキーマでユーザーのビューを作成できます。他のユーザー(たとえばadmin)は、自分のスキーマにすべての列を持ちます。どちらもビューの名前を同じにすることができます(例:getUsers)。ただし、dboスキーマ(dbo.getUsers)からビューを実行する管理者のみがすべての列を持ち、他の列は一部だけです。もちろん、SQL Serverでは、ストアドプロシージャによっても実現できます。
EFでデータアクセスの機能を実現するにはどうすればよいですか?
このように使える関数を作りたいです。
-- function checks user role and returns appropirate columns/entity
var result = getAppropirateDataForThisUser("getUsers", user);
もちろん、それは問題を説明するためだけのものです。使用法は完全に異なる場合があります。