問題タブ [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.
entity-framework-4 - 最初のエンティティフレームワークコード-別のクラスのList<>を持つクラスを複数のテーブルにマップしますか?
私はEF4を評価していて、かなり基本的な質問があります...私は答えを見つけることができないようだと思います。
次の例を見てください。
次に、データベースに次のテーブルがあります
最初にEF4コードを使用してPersonクラスを2つのテーブルにマップできますか、またはPOCOの最初のコードを再構築して、質問クラスにidとpersonIdが含まれるようにすることはできますか?これは私がやりたいことではありません。
OnModelCreatingに何かを追加して、マップする必要があるときにクラスをマップできますか?
ありがとう!
c# - EF Code first CTP 5 の MapHierarchy() の代替
新しい CTP で次を設定するにはどうすればよいですか?
entity-framework - Entity Framework Code First の一意の制約
質問
流暢な構文または属性を使用して、プロパティに一意の制約を定義することは可能ですか? そうでない場合、回避策は何ですか?
主キーを持つユーザー クラスがありますが、電子メール アドレスも一意であることを確認したいと考えています。データベースを直接編集せずにこれは可能ですか?
解決策(マットの回答に基づく)
entity-framework - EF 4.1 Code First に添付エンティティを Modified として表示させる
私が見つけたすべての例は、CTP5 には存在しないように見える ObjectContext というクラスを参照しています。この時点で強調しなければならないのは、CTP5 が Entity Framework に初めて触れたことです。
DbContext にアタッチした切断された POCO があります。ただし、SaveChanges は変更を取得しません。そのエンティティを更新するようにコンテキストに指示するにはどうすればよいですか?
私は何を間違っていますか?
2011 年 12 月 1 日更新
ほとんどの人にとって明らかかもしれませんが、EF を初めて使用するユーザーとして、既にアタッチされているオブジェクトをアタッチすると以前の状態がクリアされるとは思いもしませんでした。これは私に多くの痛みを引き起こしました。しかし、オブジェクトが既にアタッチされているか、ASP.NET MVC バインディングの結果として新たに作成されたかを気にしない方法で、非常に一般的な方法でリポジトリ パターンを使用したかったのです。そのため、メソッドが必要だったので、UpdateUser
以下に添付しました。
メソッドは明らかに、オブジェクトが何らかの形でデータ ストアに存在することを前提としていますUpdateUser
。オブジェクトが既にアタッチされている場合は、オブジェクトの以前の状態を利用できるため、DB への最適化された更新が可能になります。ただし、オブジェクトがアタッチされていない場合、メソッドは全体を強制的にダーティにします。
今では明らかなようですが、以前はそうではありませんでした。それが誰かを助けることを願っています。
リッチ
c# - Entity Framework CTP コードの最初の列の名前付けと関係
新しい Entity Framework CTP5 コードの最初のビットを調べ始めたところです。
次の非常に単純なエンティティがあります。
したがって、アカウントには所有者 (ユーザー) があり、多くのユーザーを持つことができます。これらの関係は、DB 内のAccounts
テーブルとテーブルに変換されます。Users
Users テーブルには 2 つの列がAccountId
ありAccountId1
、これらの列に生成された名前を制御する方法はありますか。また、実際にはテーブルにプロパティのUserId
列があると予想されますが、代わりに参照がテーブルにあるようです。すべてのキーを持っていないのは本当にいいことです:)AccountOwner
Accounts
Users
AccountId...n
c# - EntityFrameworkCodeの最初のCTP5マッピング
EFCTP5を新しいプロジェクトに実装し始めたところです。この場合、データベースの命名規則があいまいなため、すべてのデータベースフィールドの名前はPOCOプロパティとは異なります。これをマッピングする最良の方法は、OnModelCreatingをオーバーライドして、次のようなコードを作成することです。
これは非常に速く非常に大きくなるでしょう、それは本当にこれを行うための最良の方法ですか?
entity-framework - EF Code First を使用した SQLite
NHibernate で SQLite を使用して成功した後、Entity Framework Code First でのテストに SQLite を使用できることを非常にうれしく思います。
いくつかの接続文字列の例とデモのセットアップがあれば、それは素晴らしいことであり、忙しい一日から少し時間を節約できます.
どうもありがとう。
編集:
EFの「データコンテキスト」を介してcrudアクションを適用すると、デバッグ中にこのエラーが発生することに注意してください。
タイプ 'System.Data.SQLite.SQLiteConnection' の接続のプロバイダー名を特定できません。
うまくいけば、EF はこの方法で SQLite と統合されます。エラーメッセージは、驚くべきことに、おそらくそうではないことを示唆していますが.
entity-framework - Entity Framework CTP 5 - Code First Mappings - 列挙リストを正しくマップできない
私は次のものを持っています
そして、EFを使用したコードファーストアプローチを使用してテーブルにマップします
ご覧のとおり、複雑なマッピングは実行していませんが、AnimalType 列挙のリストは、DB 内の列/テーブルに自動的にマップされませんでした。列挙リストのマッピングを制御するには、モデル ビルダーにコードを追加する必要がありますか?
c# - EFCTPコードファースト「Foo」の型初期化子が例外をスローしました
ファイルが既に存在します。別のデータベース名を使用してみてください。[ファイル名=F:\ foo.sdf]
これは正しく使用すると起こりませんthis.Database.CreateIfNotExists()
か?
entity-framework - CTP5の重要と思われる属性へのアクセスがありません
RelatedTo(およびそのことについてはKey)のような属性が必要ですが、それらが見つからないようです。ドキュメントはまだ非常にまばらです。これらの属性を取得するためにどこに行くべきかについてのアイデア。