1

私はEntity Framework 5を使用しており、最初に使用しているデータベースのコードをリバースエンジニアリングし、次にADO.NETエンティティデータモデルを追加して、リバースエンジニアリングコードが最初に使用を提供しなかったため、ストアドプロシージャを使用できるようにしましたsproc の。これが sprocs にアクセスする唯一の方法ですか?

また、リバース エンジニア コードの最初のプロセスが完了した後、一連のクラス (データベースからのテーブル) が作成されますが、ADO.NET Entity Data Model を追加するとすぐに、ほとんどのクラスがなくなります。理由を知っている人はいますか?

4

3 に答える 3

2

DbContext.Database プロパティは、便利なメソッドを公開します http://msdn.microsoft.com/en-us/library/system.data.entity.database(v=vs.103).aspx

ExecuteSqlCommand( string, object[] )

http://msdn.microsoft.com/en-us/library/system.data.entity.database.executesqlcommand(v=vs.103).aspx

SqlQuery<TEntity>( string, object[] )

http://msdn.microsoft.com/en-us/library/gg696545(v=vs.103).aspx

于 2013-03-28T23:26:29.277 に答える
1

コード ファースト アプローチでストア プロシージャを作成またはサポートするために従うことができるパターンがあります。これをフォローするために使用できるリンクは次のとおりです。

http://www.codeproject.com/Articles/179481/Code-First-Stored-Procedures

簡単に言えば、最初にモデルで行うのと同じことを行う必要があります。入力をサポートするクラスと結果セットをサポートするクラスを作成します。

そして、Data Entity Model と不足しているクラスについて。プロジェクトで使用できるアプローチは 1 つだけであることを考慮する必要があります: コード ファースト/(モデル ファースト/データベース ファースト)。これが、これらのクラスが表示されない理由である可能性があります。

于 2013-03-28T23:15:51.567 に答える
0

Context.Database.SqlQuery を使用して SP を実行できます。

于 2013-03-28T19:11:06.663 に答える