問題タブ [edmx]
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.
entity-framework-4 - EF4 での Datetime2 変換
さて、答えを得るために無限の時間をグーグルで費やした後、私はこの問題に別の質問を追加する必要があります...
VS 2010 で EF4 EDMX デザイナーによって生成された 2 つの日時フィールドを持つテーブルがあります。
SQL 2008 で生成されたフィールドは datetime であり、datetime2 ではありません。
edmx マークアップを見ると、フィールドの型は datetime2 です。
挿入は、既知の変換の問題 datetime2 / datetime で失敗しています....
SQL テーブルのフィールドを手動で datetime2 に変更しました。
まだ運がない。
私はおそらくここで何かを見逃していますが、何が起こっているのかわかりません。
デザイナーからデータベースを再生成し、データベースからedmxを再作成しようとしました...
まだ同じ問題。
どんな助けでも大歓迎です。
entity-framework - Entity Framework -- 複合キー エンティティをカスケード削除するときに、プリンシパル オブジェクトの前に依存オブジェクトが削除されない
複合キーを持つ依存オブジェクトのカスケード削除に問題があります。具体的には、EF によって発行された SQL 命令は、依存エンティティの前に主エンティティを削除しようとします。
OnDelete="Cascade"
EF モデルの CSDL と SSDL の両方を設定し、従属エンティティをメモリに明示的に読み込んでいるため、EF はそれらを処理することができます。これは別の FK リレーションシップで正しく機能しており、EF は原則を削除する前に子エンティティを正しく削除します。
ただし、この場合はそうではなく、依存エンティティに複合キーがあるためだと思われます。スキーマを簡単に見てみましょう。
エンティティ A を削除すると、エンティティ A_B のエントリも削除されます。
ObjectStateManager を調べると、A の A_B エンティティがメモリに読み込まれ、削除対象としてマークされていることがわかりますが、EF は、 A_B を削除する前にA を削除する SQL コマンドを発行します。これは、依存エンティティが独自の PK を持っている場合は正常に機能しますが、複合キーの場合はうまくいかないようです。削除をカスケードする必要があることを EF の FK アソシエーション (SSDL と CSDL の両方) に明示的に伝えても、最初に子を削除しません。
ここでも、A とその A_B の両方がメモリにロードされており、ObjectStateManager はそれらをすべて削除するようにマークしています。プロキシ作成を有効にして POCO を使用していますが、Context に対する LoadProperty 呼び出しを介して子エンティティをメモリに明示的にロードしています。
誰もこれを見たことがありますか?複合キーが本当に問題なのか、それとも単なる気晴らしなのか? あるケースでは EF が SQL コマンドを正しい順序で処理し、別のケースでは処理しないのはなぜですか?
編集: OnDelete ( http://msdn.microsoft.com/en-us/library/cc716734.aspx ) と Relationship Management ( http://msdn.microsoft.com/en-us/ ) の両方のドキュメントを読みました。ライブラリ/ee373856.aspx )。「識別関係と非識別関係に関する考慮事項」というタイトルのセクションは、私がやりたいことが可能であり、実際に期待されていることを暗示しているようです。おそらく、データベースの EF プロバイダー アセンブリ内の何かでしょうか? 私は、SQL Server データベースではなく、IBM.Data.DB2 アセンブリを使用して Informix データベースに対して作業しています。
(さらなる更新: IBM DB2 v9.7fp3a および EF Providers Beta Refresh に更新しました -- http://www.ibm.com/developerworks/forums/thread.jspa?threadID=345634&tstart=0 )
c# - エラー 3002: フラグメントのマッピングに問題があります | エンティティへのc#linq
私はコンソール アプリケーションを持っています。私がやろうとしているのは、アプリケーションが実行されるたびに、日付と時刻がデータベース内のテーブルに送信されることです。
テーブル構造は次のようになります。
十分に単純です。
この新しい変更を反映するために、アプリケーション内の model.edmx も更新しましたが、次のエラーが表示され、その意味が完全にはわかりません。
エラー 3002: 行 1330 から始まるフラグメントのマッピングの問題: テーブル FTPRuns のキー (FTPRuns.ID) のランタイム違反の可能性: 列 (FTPRuns.ID) は、概念的な側で EntitySet FTPRuns のプロパティ (FTPRuns.ID) にマップされますが、マップされません。 EntitySet のキー プロパティ (FTPRuns.ID、FTPRuns.LastRun) を形成します。
データベースの更新にも使用するコードのスニペットを次に示します。
誰かが私を助けることができれば、私はとても感謝しています:)
ありがとう。
silverlight-4.0 - Silverlight DataForm が EditEndedEvent をトリガーせず、AddNewItems でコミットされない
Silverlight ユーザー コントロールがあります。これには、ReadOnly、Edit、および New のテンプレートを含む DataForm が含まれています。
テンプレート モードはうまく機能しており、編集フォームは完全に機能しています。しかし、AddNewItemを使用すると、EditEndedイベントを呼び出さないことを除いて、すべてのことを実行できませんが、EditEndingを呼び出し、その後警告なしに失われました。
New モードでのコミットには、Datacontext.CommitEdit を使用しました。次に、エラーがなく、DataContext に変更がある場合は、EditEnded をトリガーし、SubmitChanges を実行するとします。ロジックが EditEnded 内に入っていないため、何もできませんでした。
参考になれば幸いです。
entity-framework-4 - コア Edmx の拡張、EF4 の複数の Edmx
コア製品スイート (データベースからインポートされたエンティティ) で使用される最大 300 のエンティティを含む EF4 EDMX があります。
私たちが新しいクライアントを獲得するとき、多くの場合、彼らは追加の情報を保存し、私たちのビジネス ドメイン外で完全にカスタム化されたカスタム プロセスを開発することを望んでいます。たとえば、あるセキュリティ会社と契約を結びました。彼らは、自社のセキュリティ レベルに関する情報を保存し、これらのレベルで動作するプロセスを持ちたいと考えていました。
いずれの場合も、カスタム テーブルを追加する必要があります。AND/OR カスタム フィールドを既存のエンティティに追加します。コア クラス ライブラリがカスタム テーブルなどでジャンクされていない以前の技術でこれを行う良い方法がありました。カスタム クラス ライブラリのコア エンティティ (EF の EntityObject に相当) から継承し、必要に応じてカスタマイズを追加するだけでした。
同様に、これらのカスタム テーブルと属性をコア EDMX に追加したくありません。基本的に、カスタマイズを追加できる別のクラス ライブラリの新しいカスタム EDMX でコア EDMX から「継承」したいと考えています。継承により、Core EDMX でできることすべてに加えて、もう少し多くのことを行うことができます。
t4 テンプレートを使用して、このブログ投稿に基づいてリポジトリを生成しています (モデル優先のアプローチは使用していません)。
必要に応じて EDMX を拡張できますか?
以下のように、個別の EDMX でカスタム エンティティを返す、コア エンティティのメソッド拡張という 1 つのハックなソリューションを思いつきました。
ただし、いくつかの明白な理由から、これは理想的ではありません。
どんな助けでも大歓迎です。
c# - edmx 接続文字列
データアクセスに edmx を使用するアプリケーションを開発しています。
各 edmx ファイルには、構成ファイルに独自の接続文字列があることに気付きました。
すべての edmx ファイルに対して 1 つの接続文字列を共有する方法はありますか?
wpf - EDMをWPF ListBoxにバインドする方法は?
SQLite への WPF バインディングを理解しようとしています。
SQLite データベースを表すために生成された ADO.NET Entity Data Model があります。データベースには、「person_id」と「person_name」の 2 つの列を持つ「People」テーブルが 1 つだけ保持されます。ここで、WPF アプリケーション内でそのテーブルの EDM クラスを生成しました。
リストボックスにバインドしようとしています。ソースから項目を削除すると、リスト ボックスが更新されます。しかし、テキスト ボックスを使用してソースに項目を追加できず、リスト ボックスが更新されます。
次のように Window1 クラスでデータ エンティティを宣言しました。
p>次のように、Window_Loaded イベント ハンドラーで ObjectQuery にバインドされたリスト ボックスがあります。
ボタンをクリックして人を追加するために使用する別のテキストボックスがあります。また、リスト ボックスでアイテムを選択して削除ボタンをクリックすると、アイテムを削除できます。コミット ボタンをクリックすると、変更がデータベースにコミットされます。以下のコードを検討してください。
次の方法で「更新」という別のボタンを使用してリスト ボックス コントロールを更新しようとしましたが、うまくいきませんでした (ただし、コードをステップ実行すると、ソースが更新されていることがわかります)。
ご参考までに、XAML コードを次に示します。
これが完全に間違っているかどうかはわかりません。どんな助けでも大歓迎です。
entity-framework - エンティティデータフレームワークのすべてのテーブルのリストを取得するにはどうすればよいですか?
エンティティデータフレームワークのすべてのテーブルのリストを取得する必要があります。
Linq2SQLではこのようなものを使用できることを私は知っています。var dataContext = new DataContext(); var dataContextTableNames =(dataContext.Mapping.GetTables()のテーブルからselect Tables.TableName).ToList();
ただし、エンティティデータフレームワークのすべてのテーブルのリストを取得する必要があります。エンティティデータフレームワークで同様のリストを取得するための回避策があります。
前もって感謝します。
entity-framework - エンティティデータモデルを適切に削除して再追加する方法
EntityFrameworkの初心者はこちら。VS2010およびSQLServer2008ExpressDBを使用します。
新しいテーブルを追加した後、エンティティデータモデルを更新するのに問題がありました。そこで、ここで見つけた提案に従って、モデルを削除して再生成しました。
エンティティデータモデルウィザードの[データ接続の選択]セクションに移動し、[エンティティ接続設定をWeb.configに次のように保存する]がオンになっています。ただし、私の既存の名前には1が追加されています。たとえば、MyDatabaseEntitiesはMyDatabaseEntities1になりました。もちろん、「1」を付けたくありません。Web.configの既存の接続文字列を削除し、ソリューションでその名前へのすべての参照を削除しました。それでも続行しようとすると、次のエラーが表示されます。
「「MyDatabaseEntites」がアプリケーション設定の既存のプロパティ名と競合しています。別の名前を選択してください」
ソリューションのどこにもその名前への参照が見つかりません。そのオプションのチェックを外すと続行されますが、データベースに2つのテーブルが追加されません。次に、すべてを完全にシャットダウンして再起動し、再試行しました。今回は上記のエラーは発生しませんでしたが、3つの新しいテーブルのうち2つはまだedmxモデルに追加されていません。
どんなアイデアでも大歓迎です。また、これはVS2010 / .NET 4でもまだかなりバグがあるようです。私の信念を取り戻すのを手伝ってください...この時点で、EntityFrameworkを放棄したいと思います。これまでの経験とここに投稿された他のいくつかの問題に基づいて、有用なコードを書くよりもEntityFrameworkの奇妙さを追いかけることに多くの時間を費やすつもりだと感じています。
更新:解決策を見つけました。デザイナはエラーを表示しません。エラーを確認するには、ネイティブXML(edmxファイル)を調べる必要があります。ここを参照してください: ADO.NET Entity Framework:更新ウィザードはテーブルを追加しません
c# - LINQ WhereClause の問題
leppie に感謝します: 現在、私は
「mailMergeItems =" に達すると、ドロップして次のエラーが表示されます。「パラメーター 'f' は、指定された LINQ to Entities クエリ式にバインドされていません。」
人のみ、またはmembertypeIdのみをチェックすると、正しく機能することに気付きました..しかし、2番目を組み合わせると、「f =>」でエラーが発生すると思います。