問題タブ [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.

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

c# - EntityFramework CodeOnly を使用した基本型

Entity Framework のコード オンリー モデルの「基本型」に多くの問題があります。Entity Framework のコード オンリー モデルの「基本型」に多くの問題があります。

と を使用してこのコードを実行しようとするDbContextDbSet<Template>、次のエラーが発生します。

A ナビゲーション プロパティ 'Flags' は、2 つの異なる結合テーブル 'page.flags' と 'template.flags' にマップされます。ナビゲーション プロパティのマッピングは 1 つだけ存在できます

これが私に言っているのは、継承されたプロパティをマップできないということです。これは、多くのオブジェクト指向コード設計にとって非常に破壊的です。既知の治療法はありますか?レイアウトを非抽象化して、それを裏付けることができることは理解していますが、これがドメイン モデルの意図ではないことは明らかです。抽象クラスは、格納されたモデルではなく、基本的なベースです。

追加したいのですがIList<Flag>、をTemplateクラスに入れると、このコードが実行されます。フィールドはId、継承によっても機能します。なぜこれが起こっているのかわかりません。誰かが私を啓発できますか?

0 投票する
4 に答える
5279 参照

entity-framework-4 - 最初にコードを使用して外部キーを構成する複合キーを作成するにはどうすればよいですか?

最初に EF4 コードを使用しており、クラス プロパティと外部キーで構成される複合キーを生成したいと考えています。Order と Company の 2 つのクラスがあります。Order クラスは参照を保持しますが、これは必ずしも企業間で一意であるとは限りません。そこで、Reference と Company.CompanyId で構成される複合キーを使用するつもりです。

以下を使用して設定しようとしましたが、「キー式が無効です」というエラー メッセージが表示されます。

私も試してみました

これは失敗します。

これらは私のクラスです:

どんな助けでも大歓迎です。

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

orm - EF4コードのみ-列をプロパティ複合型にマップ

私はこのようなテーブルを持っています:

  • 名前
  • 粘土
  • 追加した

次のようなモデルにマッピングしたいと思います。

  • 名前
  • 資力
    • 粘土
  • 追加した

私のプログラムでそれを操作するとき、このようにマップすることは理にかなっていますが、データベースでそのように行うと、それがより複雑になります...有用なものは追加されません。

EF4コードONlyで可能ですか?

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

entity-framework-4 - データベースが EF4 コードのみで作成された後にモデルを変更する

ちょっと、英語が下手でごめんなさい... EF4コードのみを使用して、いくつかのPOCOクラスを作成し、そこからデータベースを生成しました。すべてうまくいきました。テーブルにいくつかのデータを挿入しましたが、クラスの 1 つで新しいプロパティを作成する必要があります。作成しただけでは、アプリケーションから例外が返されます: {"データベースが作成されてから、'TestContext' コンテキストをサポートするモデルが変更されました。データベースを手動で削除/更新するか、IDatabaseInitializer インスタンスで Database.SetInitializer を呼び出します。たとえば、RecreateDatabaseIfModelChanges 戦略は、データベースを自動的に削除して再作成し、オプションで新しいデータをシードします。"}

テーブルのフィールドを手動で作成しようとしましたが、まだ文句を言っています...誰かが方法があるかどうかを知っていますか?もしそうなら、どうすればデータベーススキーマを手動で更新できますか?モデルに一致するデータがありますか?

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

entity-framework - EF4 CTP4 Code First の列が追加されたジャンクション テーブル

次の SQL スキーマが与えられます。

で複合主キーと追加の列を定義するにはどうすればよいEntityConfigurationですか?

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

entity-framework - Image タイプを EF4 Code First Entity に追加するにはどうすればよいですか?

Image タイプを EF4 Code First Entity に追加するにはどうすればよいですか? サムネイル画像の列を追加する必要があります。

ありがとう!

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

entity-framework - EF4 コードのみ + Ria サービス

MVC アプリで使用するのと同じように、DbContext を DomainService で使用できると思いました。

問題は、クエリが機能している間、削除および更新操作が次のような例外をスローすることです。

「ObjectStateManager で見つからなかったため、オブジェクトを削除できません。」

更新: 解決策

これが私がやっていることです。これが正しい方法であるかどうかはまだわかりません:

0 投票する
5 に答える
4342 参照

asp.net-mvc - EF 4 コードは、運用環境でスキーマの変更を最初にどのように処理しますか?

伝統的に、私は常に手動で sql スクリプトを書いてきたので、それらはきれいでクリーン (私は生成されたスクリプトのファンではありません) であり、リリースごとにリリースされます。新しいインストール スクリプトと、新しいテーブル、既存のテーブルの変更など。これはすべて非常に標準的です。

最初に EF 4 コードをいじる時間はあまりありませんでしたが、実稼働環境で実際に実行可能であれば、それを使用することに非常に興味があります。

データベースが存在しない場合にデータベースが自動的に作成されるコードファーストのアプローチがあるとします。スキーマ/モデルが変更された新しいバージョンのソフトウェアをリリースするとどうなりますか。EF は、更新された EF モデルに一致するようにデータベース スキーマを更新するほどスマートですか?

シナリオ

  1. クライアントは、サーバーに asp.net MVC Web サイトをインストールします。最初の実行時に、新しいデータベースが作成されます
  2. クライアントがウェブサイトをしばらく使用すると、データベースにデータが入力されます
  3. 一方、Web サイトの新しいバージョンがリリースされ、EF モデルが変更されました
  4. クライアントは新しいバージョンをダウンロードし、Web サイトを展開し、既存のデータベースを参照します

コード ファーストは初期展開にのみ役立つのでしょうか、それとも既存のデータベース リリースをこのようにリリースするように更新するほどスマートでしょうか?

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

.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!

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

asp.net-mvc-2 - テスト用に最初にEF4コードを使用してDBを再作成するにはどうすればよいですか

.netMVC2.0プロジェクトでEntityFramework4 Code Firstを使用していますが、DBをエンティティと同期させるのに苦労しています。私が欲しいのは、たとえば/ DB / Recreateとして呼び出すことができるページで、現在のDBを削除し、空のDBを再作成します。現在私のglobal.asaxにあります

私は自分のアクションでデータベース初期化子を切り替えようとしましたが、すでに初期化されているはずなので、正しいアプローチを使用しているのかどうかは本当にわかりません:

私は本当にこれを行う方法を知りません、助けてくれてありがとう!