2009-03-27 4 views
0

異なるデータベースに対して異なるライセンススキーマを持つ製品とそうでない製品があります。特に、SQLExpress上ではより低位の製品が実行されますが、エンドユーザーは「フル・ファット」SQLのインストールを使用して価格を引き下げることはできません。明らかに、これは他のDBの場合にも当てはまるはずです。したがって、OracleはSQLよりも高い価格を指図することがあります(仮想的に)。Entity Framework:ライセンスのためにDBSchemaを検出します

私たちはEntity Frameworkを使用しています。明らかに、これは、コアスキーマにアクセスし、sp_versionを使用するか、それが何であれ、すべてのきれいさを隠します。私たちは、一連のSQLコマンド(プラットフォームごとに1つずつ)を実行して条件をプリロードするのではなく、DBオプションを制限するために戻ってくるものを参照します。しかし、もし必要ならば、私たちはそれをする準備ができています。

だから、EF自体を使ってこれを得ることは可能ですか? DBContext.COnnection.ServerVersionは、 "9.00.1234"(SQL Server 2005の場合)のようなものだけを返します。私は(まだチェックしていないが、インスタンスをインストールする必要がある)と仮定して、SQLExpressは何か類似したものを返すだろう - それは完全な脂肪である "ふりをする"。明らかに、私たちはOracle/MySQL/etcを持っていません。インスタンスは、 "Oracle"などのテキストを返すかどうかを判断できません。

答えて

1

私は、Entity Frameworkの自体にコメントすることはできませんが、MS SQL Serverのあなたは/

SELECT 
    SERVERPROPERTY('LicenseType'), 
    SERVERPROPERTY('NumLicenses'), 
    SERVERPROPERTY('EngineEdition'), 
    SERVERPROPERTY('Edition') 

の費用がかかるライセンスに関連する追加の情報を検出するために、T-SQL関数SERVERPROPERTYを使用することができますそれ以外の場合は、単純ではありませんクライアントコードに公開

+0

ご意見ありがとうございます。あなたは唯一の回答者なので、私は私の答えがあると思います! SQL Serverのインストールを確認するためにコードを使用します。どうもありがとう。 –

+0

あなたは大歓迎です。大目盛りボックスを自由に使用してください:P – gbn