問題タブ [ef4-code-only]
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# - EntityFramework CodeOnly を使用した基本型
Entity Framework のコード オンリー モデルの「基本型」に多くの問題があります。Entity Framework のコード オンリー モデルの「基本型」に多くの問題があります。
と を使用してこのコードを実行しようとするDbContext
とDbSet<Template>
、次のエラーが発生します。
A ナビゲーション プロパティ 'Flags' は、2 つの異なる結合テーブル 'page.flags' と 'template.flags' にマップされます。ナビゲーション プロパティのマッピングは 1 つだけ存在できます
これが私に言っているのは、継承されたプロパティをマップできないということです。これは、多くのオブジェクト指向コード設計にとって非常に破壊的です。既知の治療法はありますか?レイアウトを非抽象化して、それを裏付けることができることは理解していますが、これがドメイン モデルの意図ではないことは明らかです。抽象クラスは、格納されたモデルではなく、基本的なベースです。
追加したいのですがIList<Flag>
、をTemplate
クラスに入れると、このコードが実行されます。フィールドはId
、継承によっても機能します。なぜこれが起こっているのかわかりません。誰かが私を啓発できますか?
entity-framework-4 - 最初にコードを使用して外部キーを構成する複合キーを作成するにはどうすればよいですか?
最初に EF4 コードを使用しており、クラス プロパティと外部キーで構成される複合キーを生成したいと考えています。Order と Company の 2 つのクラスがあります。Order クラスは参照を保持しますが、これは必ずしも企業間で一意であるとは限りません。そこで、Reference と Company.CompanyId で構成される複合キーを使用するつもりです。
以下を使用して設定しようとしましたが、「キー式が無効です」というエラー メッセージが表示されます。
私も試してみました
これは失敗します。
これらは私のクラスです:
どんな助けでも大歓迎です。
orm - EF4コードのみ-列をプロパティ複合型にマップ
私はこのようなテーブルを持っています:
- 名前
- 木
- 鉄
- 粘土
- 追加した
次のようなモデルにマッピングしたいと思います。
- 名前
- 資力
- 木
- 鉄
- 粘土
- 追加した
私のプログラムでそれを操作するとき、このようにマップすることは理にかなっていますが、データベースでそのように行うと、それがより複雑になります...有用なものは追加されません。
EF4コードONlyで可能ですか?
entity-framework-4 - データベースが EF4 コードのみで作成された後にモデルを変更する
ちょっと、英語が下手でごめんなさい... EF4コードのみを使用して、いくつかのPOCOクラスを作成し、そこからデータベースを生成しました。すべてうまくいきました。テーブルにいくつかのデータを挿入しましたが、クラスの 1 つで新しいプロパティを作成する必要があります。作成しただけでは、アプリケーションから例外が返されます: {"データベースが作成されてから、'TestContext' コンテキストをサポートするモデルが変更されました。データベースを手動で削除/更新するか、IDatabaseInitializer インスタンスで Database.SetInitializer を呼び出します。たとえば、RecreateDatabaseIfModelChanges 戦略は、データベースを自動的に削除して再作成し、オプションで新しいデータをシードします。"}
テーブルのフィールドを手動で作成しようとしましたが、まだ文句を言っています...誰かが方法があるかどうかを知っていますか?もしそうなら、どうすればデータベーススキーマを手動で更新できますか?モデルに一致するデータがありますか?
entity-framework - EF4 CTP4 Code First の列が追加されたジャンクション テーブル
次の SQL スキーマが与えられます。
で複合主キーと追加の列を定義するにはどうすればよいEntityConfiguration
ですか?
entity-framework - Image タイプを EF4 Code First Entity に追加するにはどうすればよいですか?
Image タイプを EF4 Code First Entity に追加するにはどうすればよいですか? サムネイル画像の列を追加する必要があります。
ありがとう!
entity-framework - EF4 コードのみ + Ria サービス
MVC アプリで使用するのと同じように、DbContext を DomainService で使用できると思いました。
問題は、クエリが機能している間、削除および更新操作が次のような例外をスローすることです。
「ObjectStateManager で見つからなかったため、オブジェクトを削除できません。」
更新: 解決策
これが私がやっていることです。これが正しい方法であるかどうかはまだわかりません:
asp.net-mvc - EF 4 コードは、運用環境でスキーマの変更を最初にどのように処理しますか?
伝統的に、私は常に手動で sql スクリプトを書いてきたので、それらはきれいでクリーン (私は生成されたスクリプトのファンではありません) であり、リリースごとにリリースされます。新しいインストール スクリプトと、新しいテーブル、既存のテーブルの変更など。これはすべて非常に標準的です。
最初に EF 4 コードをいじる時間はあまりありませんでしたが、実稼働環境で実際に実行可能であれば、それを使用することに非常に興味があります。
データベースが存在しない場合にデータベースが自動的に作成されるコードファーストのアプローチがあるとします。スキーマ/モデルが変更された新しいバージョンのソフトウェアをリリースするとどうなりますか。EF は、更新された EF モデルに一致するようにデータベース スキーマを更新するほどスマートですか?
シナリオ
- クライアントは、サーバーに asp.net MVC Web サイトをインストールします。最初の実行時に、新しいデータベースが作成されます
- クライアントがウェブサイトをしばらく使用すると、データベースにデータが入力されます
- 一方、Web サイトの新しいバージョンがリリースされ、EF モデルが変更されました
- クライアントは新しいバージョンをダウンロードし、Web サイトを展開し、既存のデータベースを参照します
コード ファーストは初期展開にのみ役立つのでしょうか、それとも既存のデータベース リリースをこのようにリリースするように更新するほどスマートでしょうか?
.net - EF4 TPT with abstract classes - defining relationships
I've been going around in circles with this and don't seem to be able to google the right answers - even after hours spent on this, so you're my last resort!
Setup
In my web app I would like to enable users to use different authentication mechanisms to access their accounts. In addition to the usual user/password thing I'd like to enable them to use Google's OpenId, Yahoo's OpenId, or even Facebook. This seems rather straightforward to map into classes: an abstract Account
with several <something>Account
classes inheriting some basic properties from Account
. I started with the following two classes:
Being a bit of a perfectionist, and doing a lot of db dev in my day job, I decided table per type (TPT) would be the most desirable option. As EF4 uses TPH by default, on the DbContext side of things I defined:
Now, I wished to start with some simple tests, and thought that seeding the database on each run was a good way to have consistent data to work with:
(Not sure why but DbContext didn't seem to ever try populate my db with the above data until I exlicitly called .SaveChanges()
... any ideas?)
The Problems
One
In the database, EF didn't define any relationships between Account
and OpenIdAccount
. This was the first warning sign something was not right; surely OpenIdAccount should have its Id
defined as both a PK and a FK pointing at Account.Id?
Two
I get the following UpdateException
when .net tries to execute .SaveChanges()
:
A value shared across entities or associations is generated in more than one location. Check that mapping does not split an EntityKey to multiple store-generated columns.
Next steps
Today is my first day with EF4 and code first development. Having spent numerous hours reading about EF4 + code-first + custom mapping I came to a point where I'm permanently stuck and need a kick in the right direction before I can get going again :-)
So I'm hoping that you guys can make sense of the above and explain some silly mistake / misunderstanding on my part!
asp.net-mvc-2 - テスト用に最初にEF4コードを使用してDBを再作成するにはどうすればよいですか
.netMVC2.0プロジェクトでEntityFramework4 Code Firstを使用していますが、DBをエンティティと同期させるのに苦労しています。私が欲しいのは、たとえば/ DB / Recreateとして呼び出すことができるページで、現在のDBを削除し、空のDBを再作成します。現在私のglobal.asaxにあります
私は自分のアクションでデータベース初期化子を切り替えようとしましたが、すでに初期化されているはずなので、正しいアプローチを使用しているのかどうかは本当にわかりません:
私は本当にこれを行う方法を知りません、助けてくれてありがとう!