問題タブ [odac]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1106 参照

asp.net-mvc - エンティティ フレームワークの System.Data.Entity.Internal.InternalPropertyEntry.ValidateNotDetachedAndInModel(String メソッド) 検証をバイパスする方法は?

n 層の切断されたエンティティ クラスの個々の変更されたプロパティを追跡するために、カスタマイズされた方法を使用しています。から抽出しました

プログラミング エンティティ フレームワーク: Julia Lerman と Rowan Miller (O'Reilly) による DbContext。Copyright 2012 Julia Lerman and Rowan Miller, 978-1-449-31296-1.

コードは次のとおりです。

このメソッドの目的は、SaveChanges() の次の呼び出しで定義済みのエンティティ フィールドのセットのみを更新する準備ができていることを EF に知らせることです。これは、エンティティが ASP.NET MVC 3 で次のように機能することを回避するために必要です。

  • 最初のページ読み込み時: コントローラーの Get アクションがエンティティ オブジェクトを読み込み、それをパラメーターとしてビューに渡します。

  • ビューは、エンティティの 2 つのフィールドを編集するためのコントロールを生成し、隠しフィールドにレコードの ID を保持します。

  • [保存] を押してエンティティをコントローラーに戻すと、ビューに保存されている 3 つのフィールドを除くすべてのフィールドに null 値が含まれます。これは、MVC バインディング マネージャーの既定の動作です。

変更をデータベースに保存すると、更新クエリはもちろん、マップされていないフィールドを次のような文で上書きします。

これが、フィールドを個別に追跡し、関心のあるフィールドのみを更新しようとしている理由です。ApplyChanges() でカスタム メソッドを呼び出す前に、更新に含めたいフィールドのリストを追加しています。 IObjectWithState.ModifiedProperties リスト。次のように SQL ステートメントを取得します。

問題は、フィールドの 1 つを ApplyChanges で変更済みとしてマークする場合です。つまり、次のようになります。

システムは次の例外をスローしています:

そこで質問です。この EF 検証をバイパスする方法、または変更しようとしているこのシステム プロパティ (IsModified) の存在をコンテキストに知らせる方法はありますか?

アーキテクチャの概要:

  • 最初に EF コード (注釈 + Fluent API)
  • Oracle .NET EF データ プロバイダー (ODAC)
  • コンテキストは、nInject.MVC を使用してカスタム ビジネス コンテキストに注入されます => これが、ApplyChanges() メソッドをカスタマイズした理由です。

    using (var context = new BreakAwayContext()){ context.Set().Add(root);

    すでに初期化されている dbcontext への単純な呼び出し

    dbContext.Set().Add(ルート);

  • Oracle データベースは、EF の助けを借りずに手動で作成されるため、EF メタデータ テーブルは使用されません。

ありがとう、イワン。

0 投票する
1 に答える
3149 参照

c# - ODP.Net および C# での System.Reflection.RuntimeModule.GetTypes() エラー

ODP.Net 経由で Oracle データベースにアクセスするかなり複雑な C# アプリケーションを作成しました。ODAC (32 ビット) をインストールした Windows XP マシン (32 ビット) でアプリケーションを開発しました。アプリケーションは開発用 PC では問題なく実行されますが、サーバー (Windows サーバー 2003 x64 サービス パック 2) では例外がスローされます。

サーバーに .Net Framework 4.0 (dotNetFx40_Full_x86_x64.exe) のランタイムと ODAC をインストールしました。最初に Windows x64 のリリース 4 (11.2.0.3.0) を試し、次に ODAC 11.2 リリース 4 (11.2.0) を試しました。 0.3.0) を Oracle Developer Tools for Visual Studio と共に使用します。

どれもうまくいきませんでした。32 ビット版はさらに進化しました。データベースで LINQ ステートメントを初めて呼び出すと、次のメッセージが表示されます。

64 ビット バージョンでは、Oracle.Access がサポートされていないことがわかります。これは、サーバー上で ODAC を使用せずにアプリケーションを最初に実行しようとしたときに表示された元のエラー メッセージと同じです。

どなたか助けていただけませんか?同様の問題について議論しているいくつかのエントリを見てきましたが、私が見た唯一の説得力のある返信は、すべての参照に対して Copy Local を TRUE に設定して実行可能ファイルをビルドすることでしたが、それでも失敗しました。それでも同じエラー メッセージが表示されます。

0 投票する
1 に答える
411 参照

entity-framework - Entity Framework with Oracle

I have installed the ODAC 11 and I would like to use it with EF Database First but it doesn't appear in the "Choose Data Source" dialog just the SQL Server providers. I don't know how to go further. I need a little help, please.

0 投票する
1 に答える
11864 参照

visual-studio-2010 - VS2010でx64ODACで32ビットのOracleDeveloperToolsを使用できますか?

オラクルのWebサイトから: http ://www.oracle.com/technetwork/database/windows/downloads/index-090165.html

これは、最新のOracle Data Accessコンポーネント、Windowsx64用の64ビットODAC11.2リリース4(11.2.0.3.0)用です。開発者ツール(ODT)を使用したいのですが、64ビットでは使用できません(おそらくVS2010がまだ32ビットであるため)。サイトから:

重要:Entity Frameworkの設計時機能には、VisualStudio用の32ビットOracleDeveloperToolsのダウンロードが必要です。上記のダウンロードは、Entity Frameworkの展開を完全にサポートしていますが、デザイン時のツールは含まれていません。

私はEFを使用していません(通常はEFより3〜4年進んでいるためMindscape LightSpeed製品を使用しています)が、原則は同じです-VS2010とLightSpeedは32ビットアプリであり、x64ライブラリをロード/使用できません。

32ビットツール(ODT)を使用してアプリを開発し、x64ODACを使用してアプリを展開したいと思います。誰かがこれをしましたか?できますか?誰か?

重要な場合、これは仮想Windows Server2008R2マシンで実行されているWCFサービス用です。私が半成功したのは、全員に32ビット操作を強制することですが、64ビットがサポートされていると彼らが主張しているようにサポートされている場合、それは少しばかげているようです。

よろしくお願いします、デイブ

0 投票する
1 に答える
651 参照

c# - EF4(ORACLE)で並行性を処理する方法

Entity Framework 4(ODAC)でプログラミングするときにデータを安全に更新する方法を知りたいです。

競合状態が発生すると、このコードは危険になります(数量チェックを回避します)。これを正しく行う方法を誰が知っていますか?

編集:EF4が追跡トークンとして列を作成するメカニズムを提供することを今私は知っています。しかし、Oracle DB(9i)でこの種の列を作成するにはどうすればよいかわかりません。適切な列タイプは何ですか?

0 投票する
1 に答える
753 参照

oracle - Oracle クライアント バージョン 9 と 11 の両方を同じマシンにインストールできますか?

odac(11.2) と oracle クライアント 11.2 を使用するプログラムがあります。ここで、Oracle 9i クライアントが既にインストールされているボックスに展開したいと考えています。

一部の既存のプログラムはそれに依存しているため、新しいクライアントが既存のプログラムに害を及ぼすのではないかと心配しています。これは本当ですか?そして、どうすればそれらすべてを適切に機能させ続けることができますか?

0 投票する
1 に答える
64 参照

.net - エンティティ モデル ウィザードにテーブルのドキュメントがない

Visual Studio 2010 でエンティティ モデルを作成するために ODAC 11.2 r4 を使用しています。現在、すべてのウィザードが Oracle データベースから自動生成するものをテストしており、データベースに基づいてドキュメントを生成する方法を理解したいと考えています。テーブルと列の両方にコメントを設定しましたが、エンティティ側には表示されません。これらのコメントまたはデータベース側で設定したその他の文字列からドキュメントを自動的に生成する方法はありますか?

0 投票する
2 に答える
360 参照

entity-framework - エンティティフレームワークと継承-EFで発生する可能性のあるバグ?

私はエンティティフレームワークの使用を開始しようとしていて、独特の動作に遭遇しました。この短い例を示して用意しました。

つまり、基本タイプと継承タイプ「Person」と「Employee」を使用して、タイプごとのテーブルモデルを作成しようとしています。問題は、次のような行を使用してデータベースにクエリを実行すると、

人物オブジェクトのリストを取得することを期待しています。リストのタイプはListですが、テーブル内のレコードの1つだけが従業員用である場合でも、リスト内のすべてのオブジェクトはEmployeeオブジェクトです。EFが間違ったタイプを返しているようです。

ただし、「スーパーヒーロー」など、Personから継承された別のタイプを追加し(これをわかりやすい例にしようとしています:)、スーパーヒーローレコードを作成すると、同じコマンドで、Persons、Employees、Superheroesの混合物が期待どおりに返されます。 (以前は、従業員ではありませんでしたが、従業員しか取得していませんでした)

詳細

VS2010とOracleデータベースをODAC11.2.0.3で使用しています。これがOracle関連の問題であるかどうか、またはこれがMSSQLデータベースとDDL生成でも発生するかどうかを確認するためにいくつかの助けが必要です。

新しいコンソールアプリケーションを作成し、[追加]->[新しいファイル]->[ADO.NETエンティティデータモデル]に移動します。次に、このモデルを作成します

EFモデル

私のコードは次のようになります。

そして結果:

結果1

すべては順調です。

ここで、Employeeエンティティを削除し、「var result2 ...」行をコメントアウトすると、次の結果が得られます。

結果2

データベース内のデータに変更を加えていません。すべてのエンティティがスーパーヒーローのタイプを持っていることに注目してください!また、「Superpower」プロパティをNullable = Trueに設定する必要があることに注意してください。そうしないと、レコードの1つだけが実際にスーパーヒーローであるため、例外が発生します(他のレコードはPersonSet_Superheroテーブルに全体がありません)。

それで、これはEntity Framework、ODAC、またはその他のバグですか、それともここで何か間違ったことをしていますか?

0 投票する
2 に答える
2727 参照

oracle - .net 4.5 の Oracle ストアド プロシージャ

.net 4.5 で次のストアド プロシージャを実行しようとしています。

これらの引数のほとんどは null にすることができます。ヒキガエルでは、次のように実行できます。

C# では、次のことを試しています。

そして、次のエラーが表示されます

オプションのパラメーターの有無にかかわらず、return_value/:out パラメーターの有無にかかわらず試してみました。

Oracle.DataAccess プロバイダー v. 4.112.3.0 を使用しています。それほど多くのパラメーターを持たない/出力パラメーター (カーソル) が 1 つだけの他のストアド プロシージャで動作します。

編集: エラーが 1 つ見つかりました。パラメーター配列の最初に出力パラメーターが必要です。

今、私はエラーが発生しています:

データベースエラーのようですが、エラーが発生することなくヒキガエルから同じコマンドを実行できるため、奇妙に見えます。

0 投票する
0 に答える
170 参照

expression-trees - Expression。*名前空間は、EF 4.3 + ODACの式ツリーを作成する唯一の方法ですか?

ODAC(Oracle Data Access Components)、Entity Framework 4.3.1、および式ツリーに問題があります。Entity Frameworkでマッピングしているレガシーデータベースがあります(全員ではありませんか?)。このテーブルには、数百万のレコードと100を超える列(悲しい顔)があります。

インデックス付きの列に対するクエリの例を次に示します。

Func <>とExpression>の違いと、Expression>が実際にクエリのためにデータベースに渡される方法を説明するこのようなものを読みました。そのため、より高速です。

http://www.fascinatedwithsoftware.com/blog/post/2011/12/02/Falling-in-Love-with-LINQ-Part-7-Expressions-and-Funcs.aspx-全体は良いですが、急いで、主なポイントについては「意図しない結果」というタイトルのセクションを読んでください

http://fascinatedwithsoftware.com/blog/post/2012/01/10/More-on-Expression-vs-Func-with-Entity-Framework.aspx

Func<T>ではなくExpression<Func<T >>を使用するのはなぜですか?-対応するSOの質問がなければ、リンクのセットは完成しません。

私の質問はこれです:人々は本当にそこに座ってExpression。*クラスを使用して式ツリーを構築していますか?単純な比較以外のクエリは非常に複雑になり、読むことはほとんど不可能です。式>をデータベースに渡すことについて何が欠けていますか?この手動で構築された式ツリーソリューションの顔を殴るのは誰ですか?オラクル?EF?私は何が欠けていますか?