問題タブ [code-first]
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.
c# - Entity Framework CTP4 Code First: 保護されたプロパティのマッピング
モデルで遅延読み込みコレクションを使用したいのですが、追加/削除機能を別のメソッドで実行したいと考えています。だから、このようなもの:
このマッピングを構成する方法がわかりません。構成クラスの使用を調べました: EntityConfiguration. しかし、プロパティが保護されているため、構成を設定する方法がわかりません。私がここでやろうとしていることを達成する方法はありますか?
entity-framework - EF4 Code First での 1 対 1 のオブジェクト関係
親オブジェクト book があり、そのオブジェクトのプロパティは publisher です。本を宣伝するたびに、出版社が既に存在する場合でも、新しい出版社が追加されます。本を追加する方法を誰か教えてもらえますか? 出版社を再度追加する代わりに、既存の本を参照するだけですか? 私が使用しているコードは以下のとおりです...よろしくお願いします!
.net - Entity Framework 4 - Code First とストアド プロシージャ
EF4「Code First」を使用して、テーブルを返す 1 つのパラメーターでストアド プロシージャを実行したいと考えています。この目的のためだけにいくつかの DTO を使用しても問題ありません。エンティティを返す必要はありません。私はしようとしました:
a) 関数インポートを使用して edmx ファイルを作成し、次のように ObjectContext に追加します。
しかし、InvalidOperationException
「流暢なAPIを使用したコードの最初の構成が開始された後、既存のモデルの登録は使用できません」と言われてしまいました。
b) アンダーリング接続にアクセスし、手順を実行します。
どこ
しかし、このアプローチもうまくいきません。InvalidOperationException
「FunctionImport に指定されたコンテナ 'booklog' が現在のワークスペースに見つかりませんでした」というメッセージがスローされます。
.net - を支えるモデルデータベースが作成されてからコンテキストが変更されました
エラーメッセージ:
「データベースが作成されてから、「AddressBook」コンテキストをサポートするモデルが変更されました。データベースを手動で削除/更新するか、IDatabaseInitializerインスタンスを使用してDatabase.SetInitializerを呼び出します。たとえば、RecreateDatabaseIfModelChangesストラテジーは、データベースを自動的に削除して再作成します。オプションで、新しいデータをシードします。」
私はコードファースト機能を使おうとしていますが、次のように書いています。
コンテキストクラス:
および接続文字列:
したがって、データベース名は「AddressBook」であり、連絡先オブジェクトをコンテキストに追加しようとするとエラーが発生します。ここに何か足りないものがありますか?
entity-framework-4 - Entity Framework-CTP4-コードファースト-自動複数化をオフにする方法は?
私のエンティティ名は「Contact」で、テーブル名は「Contact」です。ただし、デフォルトの複数化サポートにより、EF4は「Contacts」という名前のテーブルを検索します。複数化のサポートをオフにする方法について誰かが何か考えを持っていますか?
この投稿には、複数形のサポートに関する詳細があります。しかし、それでも私には答えがありません。
この投稿には次のテキストがあります。まず、この変更を行うために必要な物理的な.ttファイルがわかりません。また、この機能をすべてではなく1つのアプリでのみオフにしたい。
T4 Toolboxのコードジェネレーターでは、Visual Studio 2010でデフォルトで複数形がオンになっています。おそらく互換性の理由で複数形なしでDALを生成する必要がある場合は、前に.ttファイルに次の行を追加してこのオプションをオフにできます。 generator.Run()メソッドが呼び出されます。
C#
generator.Pluralize = false;
VB
ジェネレーター.Pluralize=False
アップデート
以下は私が使用するコードであり、以下のエラーが発生します:-
コンタクト
コンテクスト:-
}
メインプログラム:-
そして、「context.Contact.Add(contact);」で次のエラーが発生します:-
System.InvalidOperationException:データベースが作成されてから、「AddressBook」コンテキストをサポートするモデルが変更されました。データベースを手動で削除/更新するか、IDatabaseInitializerインスタンスを使用してDatabase.SetInitializerを呼び出します。たとえば、RecreateDatabaseIfModelChangesストラテジーは、データベースを自動的に削除して再作成し、オプションで新しいデータをシードします。System.Data.Entity.Infrastructure.CreateDatabaseOnlyIfNotExistsで
1.InitializeDatabase(TContext context) at System.Data.Entity.Infrastructure.Database.Initialize() at System.Data.Entity.Internal.InternalContext.Initialize() at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) at System.Data.Entity.Internal.Linq.EfInternalQuery
1.Initialize()at System.Data.Entity.DbSet1.ActOnSet(Action action,EntityState newState, TEntity entity) at System.Data.Entity.DbSet
1.Add(TEntity entity)at CodeFirst.Client.Program.Main(String [] args)in E:\ Ashish \ Research \ VS Solutions \ EntityFramework \ CodeFirstApproach_EF_CTP4 \ CodeFirst.Client \ Program.cs:line 35
私はどこかで愚かな間違いを犯していると確信しています。誰かがいくつかの指示を提供できますか?
答えポールト の助けを借りて、私はこの問題と解決策をここで説明しました。
c# - Entity Framework 4 コード - 最初の多対多の挿入
データベース層にコードファーストパターンを使用しています。
私は2つのPOCOクラスを持っています:
と
次に、データ コンテキスト クラスがあります。
そして、私は「リポジトリ」クラスを持っています:
この OrderRepository.Save メソッドを呼び出すと、エラーが発生します。エンティティ オブジェクトは、IEntityChangeTracker の複数のインスタンスによって参照できません。
データベースには、Items、Orders、Items_Orders というテーブルがあります。このエラーと EF の多対多の保存について、Google でいろいろ調べましたが、役に立ちそうなものは見つかりませんでした。 Code-First 原則のサンプルを見つけます。
ありがとう!
entity-framework - EF4 CodeFirst CTP4 - 既存の関連付けで挿入
関連付けを持つエンティティ (Book.Publisher など) がある場合、新しい Book を保存して既存の Publisher に関連付けるにはどうすればよいですか?
ところで、モデルで FK アソシエーション (つまり、PublisherId) を公開したくありません。
私はこのようなものを使用していました:
ただし、これは新しい発行元を追加しようとするだけです。
ObjectStateManager.ChangeObjectState の使用を提案するこの質問を見ましたが、これを試してみるとエラーが発生します - ObjectStateManager には、「Blah.Publisher」タイプのオブジェクトへの参照を持つ ObjectStateEntry が含まれていません。
c# - より良い設計/実践は何ですか:Nullableプロパティまたは1つのvalueプロパティと1つのbool "has"プロパティ?
私はASP.NETMVCアプリに取り組んでおり、新しいEFコードファースト機能を使用(テスト)して、ドメインモデルを設計しています。
期限がある場合とない場合があるアクティビティエンティティがありますが、それに近づくための最良の方法は何ですか?
1物件:
また
2つのプロパティ:
最初は最初のオプションを考えましたが、DBに関しては2番目のオプションの方が良いのではないかと思い始めました...
これに関するベストプラクティスはありますか?
linq-to-entities - Entity Frameworkコードファースト-積極的な読み込みが期待どおりに機能していませんか?
次のEntityFrameworkPOCOクラスがあります。
問題は、私が戻ったとき、ICollection<Order>
私はOrder
大丈夫ですが、のOrderType
プロパティOrder
が入力されていないということです。注文には次の詳細が含まれます。
私のマッピングコードは次のようになります。
次に、コンテキストで遅延読み込みを無効にしました。
したがって、リポジトリ内のデータを返すには、次のInclude
メソッドを使用しSystem.Data.Entity
ます。
指定できなかったのでOrders.OrderType
、それが問題だと思っていたので、いくつかのバリエーションを試しました。
ただし、Orderを直接ロードしない限り、OrderTypeプロパティが返されることはありません。
このコードは、注文内のOrderTypeを正しく返します。
linq-to-entities - EntityFramework-コレクションを介したプロパティのナビゲートとインクルード
私はちょうど大規模な*金髪の瞬間**を経験しましたが、それは私がEntityFrameworkで抱えている煩わしさを浮き彫りにしました。遅延読み込みを無効にしているので、アプリケーションをできるだけ高速に保つために必要なデータについて実際に考えなければなりません。
したがって、クエリ内でデータを返すには、次のInclude
メソッドを使用する必要があります。
これは、階層のもう少し深い項目を選択するまでは問題ありません。すなわち:
私の知る限り、このすべてのデータを熱心に返す唯一の方法は、次のことを行うことです。
System.Data.Entity
上記では、最初の例のようにラムダを利用できません。ここで明らかな何かが欠けているかどうか、またはコレクションを介してナビゲーションプロパティに文字列宣言を使用することに固執しているかどうかを誰かが知っていますか?
コレクションがない場合は、次のように書くことができます。
しかし、Orders
コレクションがあるため、私が知る限り、子プロパティにステップスルーする方法はありません(、、FirstOrDefault
などSingleOrDefault
は機能しません)。
**それは言い換えです、私はたまたま金髪がとても好きです*