asp.netコアを使用していないクエリ以外のプロシージャを実行する

asp.net-core asp.net-core-mvc entity-framework-core linq stored-procedures

質問

私は3つの値(電子メール、名前、CompanyID)を返し、1つのパラメータ(CompanyID)を取得するが、それは動作していないストアドプロシージャを実行したい。

これらのプロパティとデータを返すストアドプロシージャを持つクラスを作成しました。それによってDatabaseFacadeエラーが表示されます。

私のコードは:

 List<MyClass> AppUser = new List<MyClass>(); //Class with three properties
 SqlParameter param1 = new SqlParameter("@CompanyID", CompanyID);
 AppUser = _context.Database.SqlQuery<CC>("GetUserAndRolesForCompany", param1).ToList(); 

このエラーを表示する:私はSystem.Linqをインクルードしている

'DatabaseFacade'に 'SqlQuery'の定義が含まれておらず、 'DatabaseFacade'タイプの最初の引数を受け入れる拡張メソッド 'SqlQuery'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?

人気のある回答

このリンクの助けを借りてくださいhttps://docs.microsoft.com/en-us/ef/core/querying/raw-sql

Core 2.0またはEntityFramework 7では、以前のバージョンのef 6で使用可能なSqlQuery機能はサポートされていません。

以下は、EntityFramework 7でspを実行する方法の例です。

 public List<UserDetails> GetUserDetailsUsingSP(int LoggedInID)
        {
            var loggedInUser = new SqlParameter("Id", LoggedInID);

            return WidServices
                .FromSql("EXECUTE WID_Services_GetAll  @Id ", loggedInUser)
                .FirstOrDefault();
        }

注意:メインのdbコンテキストクラスの下にDbSetを追加する場所にこのメソッドを追加し、dbContextをインスタンス化してこのメ​​ソッドを呼び出します。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ