3

すべてのロジック (Entity Framework 4 オブジェクトの操作として実装されている) をサーバー側に移動することを楽しみにしています。シンプル (アプリケーション構造のおかげ) で、有益 (私が持っているのは、クライアントとしての古いラップトップ 1 台と、SQL Server 2008 を実行する 1 台の頑丈なサーバーだけであり、ロジック用に別のサービスを構築すると、より多くの遅延が発生する可能性があるため) になりそうです。データベース内で行う場合と比較した場合)。

では、CLR ストアド プロシージャ内で Entities Framework を正しく使用し、ホスト サーバーが提供する SqlContext を使用してそれを作成するにはどうすればよいでしょうか。

突然、Web で例を見つけることができなくなりました。誰もまだこれを食べていないのは奇妙に見えます。その仕事はばかげていて、絶対にやるべきではないということですか?T-SQL を使用して EF クラスの代わりにテーブルに直接アクセスするのはあまり便利ではありません。私のモデルは継承を多用し、多くの非常に単純なテーブルの非常に複雑な型ごとのテーブル構造を持っているからです。

4

4 に答える 4

2

少なくとも現時点ではできません。SQL Server 2005 ~ 2008 R2 に含まれる CLR は .NET 2.0 CLR であり、Entity Framework 4 には .NET 4 フレームワークが必要です。

したがって、今のところ、SQL-CLR メソッド内で何かを行う場合は、そのままの ADO.NET 2.0 のみに制限されます。

さらに大きな疑問が残ります。一体なぜ、SQL-CLR 関数内で EF4 を使用したいのでしょうか? これらは、ストアド プロシージャ、ユーザー定義関数、ユーザー定義集計であることを意図していますが、本格的なデータベース アプリではないことは確かです...

于 2010-05-08T12:55:21.930 に答える
2

私たちの中には、データベース スキーマのメタデータを 2 つ以上の場所で維持することにそれほど熱心ではない人もいます。EF はこれを行うのに優れていますが、SQL-CLR のパフォーマンス上の利点を利用したい場合は、スキーマをそのコンテキストで定義する必要があります。現時点では、DDL を生成してデータベースを定義し、それを EF にインポートする SQL-CLR アセンブリのカスタム メタデータ コードを意味します。

于 2011-02-28T12:50:32.377 に答える
1

いいえ、できません。Visual Studioでは、ファイルやプロジェクトの種類を追加することもできません。(それは残念です。本当に複雑なロジックを処理するためにもそれを実行したかったのです。)

于 2011-01-19T18:40:51.800 に答える
1

SQL Server 2008 R2 以降でできるようで、.NET バージョンを使用しています。4.0。このブログを参照してください。

SQL Server 2010 Developer Eeition に対して次のコマンドを実行します。

select value from sys.dm_clr_properties where name = 'version'

そして、次の出力を得ました:

v4.0.30319

于 2012-05-06T06:14:36.193 に答える