2017-06-02 8 views
0

私は既存のデータベースと既存のドメインを持っていますが、もともとはnHibernateを使用して作成され、アクセスされており、現在はEntity Frameworkコアに移動しています。エンティティフレームワークのコア - デバッグマッピング

私はドメインの1つの要素にアクセスしようとしましたが(残念ながら他の多くのエンティティと密接に結合しています)ドメインは非常に遺産的でモノリシックなので、この練習の一環として変更することはできません。

"'DateTimeFormatInfo.AbbreviatedDayNames'プロパティは、サポートされていないプリミティブ型または有効なエンティティタイプではない 'String []'型であるため、マッピングできませんでした。このプロパティを明示的にマップするか、 '[NotMapped]'属性を使用するか、 'OnModelCreating'の 'EntityTypeBuilder.Ignore'を使用して無視してください。

.NETタイプのマッピングを別にすれば、マッピングが失敗している場所を正確に把握することは非常に難しいです。失敗したセクションを簡単に識別するツールや方法がありますか?

私は以下を試しました: - SQLトレースは、アプリケーションでは失敗したものは何もありません。 - 例外はそのエラー、内部例外または詳細情報を提供しません。 - 'DateTimeFormatInfo'タイプの要素を持つエンティティのソリューション全体でテキスト検索を行いました。誰もいません。 - プロパティ/機能AbbreviatedDayNamesを含む、または使用しているエンティティのソリューション全体でテキスト検索を行いました。

したがって、どのエンティティマッピングが失敗しているかを正確に特定しようとしています。

また、どのマッピングにもEF Fluent APIを使用したいと思っています。

答えて

1

間違ったテキストを検索しています。
DateTimeFormatInfo.AbbreviatedDayNamesは不動産ではありません。 代わりに、 'String []'タイプのプロパティを見つけて、Entitiesで検索してください。
エラー自体には、問題の場所が示されます。 EFは文字列の配列を任意のdb型にマップすることはできません。

+0

質問2つの質問ですが、DateTimeFormatInfo.AbbreviatedDayNamesと何も関係がない場合、なぜそれがエラーメッセージで言及されていますか。そのプロパティはString []ですが、名前を付ける理由は何ですか?次に、マッピングとマッピングの検証の問題を明確に示すツールがありますか? – user281921

+0

DayNamesでこの情報を正確に取得する理由がわかりません。 'String [] SomeArray'でエンティティをテストしましたが、エラーが発生しました: "プロパティ 'Party.SomeArray'は、サポートされていないプリミティブ型である 'String []'型であるためマップできませんでした。有効なエンティティタイプ。このプロパティを明示的にマップするか、無視してください。 私の場合、 'SomeArray'はプロパティ自体の名前です。 あなたの状況に関する具体的な情報があります。 – borisdj

+0

これは私が見つけようとしていることです。どこのAbbreviatedDayNamesプロパティが正確にどこにあるのかわかりません。私が言ったように私はたくさん持っていて、テキスト検索はこのプロパティを見つけません。私はエラーがマッピング文字列[]にあることを認識していますが、それを見つけるのが難しいので、いくつかのツールや簡単な方法の要求です。 – user281921

0

私はちょうど今

The property 'DateTimeFormatInfo.AbbreviatedDayNames' could not be mapped, because it is of type 'String[]' which is not a supported primitive type or a valid entity type. Either explicitly map this property, or ignore it using the '[NotMapped]' attribute or by using 'EntityTypeBuilder.Ignore' in 'OnModelCreating'."

私の場合は問題がCultureInfoプロパティタイプを持つエンティティに関連していたとしてもEntity Frameworkのコアへのアプリケーションの移行を上記のように正確に同じエラーが発生しました。

System.Globalization.CultureInfo.DateTimeFormatは、DateTimeFormatInfoタイプであり、私のケースではエラーが記述していたプロパティです。

関連する問題