問題タブ [table-per-hierarchy]

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 投票する
0 に答える
627 参照

fluent-nhibernate - Fluent NHibernate 自動マッピング table-per-abstract-hierarchy / table-per-concrete-subclass

授業があります

その結果、次のテーブルが必要です。さまざまな IConvention を多数実装しようとしましたが、階層マッピング (table-per-abstract-hierarchy / table-per-concrete-subclass) でさえ失敗するようです。

私はすでに醜くて流暢なマッピングを持っていますが、いくつかの醜さを取り除きたいです

自動マッピングで同じ結果を得るにはどうすればよいですか?

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

entity-framework - ディスクリミネーターのテーブルを選択できません (モデル優先)

階層ごとのテーブルが必要なプロジェクトを開始しようとしています。過去にNHibernateでこれを行ったことがありますが、XMLマッピングファイルを手動で編集する必要がないようにしたいので、Entity FrameworkとDesignerを使用しようとしています.

私はオンラインでこの例に従ってきました: http://mosesofegypt.net/post/Inheritance-and-Associations-with-Entity-Framework-Part-1.aspx

[<テーブルまたはビューの追加>] ドロップダウンからテーブルを選択しようとすると、テーブルを選択できず、代わりにリストに「(空)」と表示されます。

激しく失敗する

チュートリアルからの唯一の逸脱は、サンプル データベースから Person テーブルを生成しなかったことです。逆に)。

ディスクリミネータを追加する資格を得るためにテーブルが満たす必要がある基準がわからない...

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

java - hibernateのクラスごとのテーブル階層戦略内で具象クラスを更新するにはどうすればよいですか?

ここで概説するように、hibernateのクラスごとのテーブル階層を採用しました。

親にはいくつかの属性が含まれ、子にはさらに多くの属性が含まれる、単純な1層の階層があります。オブジェクトとの関係もあります。例えば:

私がする必要があるのは、整合性を維持しながら、永続化されたYのインスタンスをZのインスタンスに「更新」することです。Yを削除して発行した場合。作成Z、一意の制約違反が発生します(作成/更新に続くHibernateの削除の順序が原因)が、YをZに「更新」する戦略が見つかりません。

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

entity-framework - 階層ごとのエンティティ フレームワーク テーブルの制限

データベースに非常に大きなテーブルがあり、変更できません。だから私はテーブルの BaseEntity タイプを持っています。

複数の子 (entity1、entity2) があり、各型を同じ列 ("Date") にマップし、プロパティに異なる名前を付けたいと考えています。

確かに、すべての同じ列プロパティを基本型に移動することはできません。これは、スーパー テーブルに約 100 の列があるためです (これは、マップする必要がある私の設計ではありません)。

だから私は0019エラーがあり、それを解決する方法はありますか、それともEFは私のためではありませんか?

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

entity-framework-4.1 - EF: Fluent マッピングを使用した TPH 実装で無効な列名の例外がスローされる

これが私の実装です。

以下は流暢なマッピングです

データベースモデルは次のとおりです。

TPH図

データアクセス層で、人を取得して「Person.PersonExpirableCredentials」にアクセスしようとすると。無効な列名「Person_PersonID」でエラーがスローされます。以下は、それが生成する SQL クエリです。

何らかの理由で、EF は Person クラスとサブクラス PersonExpirableCredentials の間の関係を識別できません。

助けてください。

ありがとう

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

c# - C#、エンティティ フレームワーク、TPH

TPH マッピングに問題があります。クラスは次のとおりです。

抽象サービス (基底クラス)

具体的なサービス

私は常に次のエラーが発生します:

--- エラー: モデルの生成中に 1 つ以上の検証エラーが検出されました:

そして、ここにスタックトレースがあります:

未処理の例外: System.Data.Entity.ModelConfiguration.ModelValidationException: モデルの生成中に 1 つ以上の検証エラーが検出されました:

Prisma.Loader.PrismaLoader.Init() の C:\Projects_PrismaLoader\Prisma.Load er\PrismaLoader.cs:line 95 at Prisma.Loader.PrismaLoader.Load(Boolean quick) in C:\Projects_PrismaLoader\Prisma.Loader\ PrismaLoader.cs:C:\Projects_PrismaLoader\Pri sma.Loader\Program.cs:行 113 の Prisma.Loader.Program.Main(String[] args) の行 32

この場合、スタック トレースはあまり役に立ちません (どうやら...)

誰が私がどこで間違いを犯したのか知っていますか? 一日中探してました…

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

c# - EF、階層ごとのテーブル、抽象クラスのプロパティ

基本クラス (抽象) で定義されている仮想プロパティを使用して、他の具象型とのリンクを作成できるかどうか疑問に思っています。

例えば ​​:

ICollection に注釈を追加して、正しくマップする方法を知る必要があると思いますが、正しいものを見つけることができません。

皆さんは何か考えがありますか?

[InverseProperty("Site")] を ICollection に設定すると、アセンブリでリレーションが定義されていないことを示すエラーでクラッシュするようです...

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

inheritance - EF:サブクラス(継承)のすべてのエンティティを選択します

私はデータベースファーストアプローチとDbContextを使用しています。データモデルにいくつかの継承構造(TPH)があります。ただし、DbContextは基本クラス用に1つのDbSetのみを作成し、サブクラス用には作成しません。指定したサブクラスのすべてのエンティティを取得するにはどうすればよいですか?

データモデルからこれらのフィールドを削除する必要があったため、マッピング基準に基づいてクエリを記述できません。

新しいDbSetをEntitiesクラス(部分クラス)に追加するだけでいいですか?

0 投票する
0 に答える
394 参照

asp.net-mvc - TypeID をプロパティと条件の両方として使用する階層ごとの Entity Framework テーブル

エンティティ フレームワーク + mvc を使用してドメイン ツリー構造を実装しています。JSTree を使用して、組織構造を提示します。

これまでの私のモデルスキーム: そのモデル スキームでは、継承の条件と DomainEntity のプロパティの両方として TypeID プロパティを使用していることに注意してください。これはもちろん、次のエラーをスローします。

エラー 3 エラー 3032: 139 行目から始まるフラグメントのマッピングに問題があります: 'IsNull=False' 以外の条件を持つ条件メンバー 'DomainEntities.EntityTypeID' がマップされています。DomainEntities.EntityTypeID の条件を削除するか、マッピングから削除してください。C:\Code\CamelotShiftManagement\CamelotShiftManagement\Models\CamelotDB.edmx 140 15 CamelotShiftManagement

TypeID をプロパティとして使用せず、それを継承関連付けの条件として保持するとします。これにより、ドメイン エンティティのツリーにデータを入力しようとすると、次のようになります。

新しいエンティティが導入されるときに、私が扱っているエンティティのタイプを教えてくれるプロパティにしかアクセスできない場合は、このコードを変更する必要があるため、このコードは保守できません.. :) .

ここにジレンマがあります: 各継承の条件として継承と TypeID を使用する場合、DomainEntity のプロパティとしてアクセスできません。そのため、送信先の型を決定するために、typof(entity) に対して switch-case を使用する必要があります。私の JSTree プラグインは、JSON の各ノードの型識別を期待しているためです。継承を使用しないと、ポリモーフィック機能が失われます。

私が求めているのはポリモーフィズムだけではありません..継承されたエンティティにのみ関連する他のメソッドとプロパティがあり、将来的にいくつかの注入ポイントを見ることができます...

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

entity-framework - Code First - Discriminator IS NULL または NOT NULL の場合のマッピング

EF5 Code First で TPH 継承を使用したいと考えています。データベース内の列が null かどうかに基づいて作成したいと考えています。

このリンクは、EF4 では不可能であることを示しています。Entity Framework 4 - 「IS NULL」識別子を使用した機能 CTP5 (コードが最初) の TPH 継承

これはEF5で修正されましたか? もしそうなら、構文は何ですか?