2011-09-01 18 views
6

私のデータベーステーブルのいくつかで階層ごとの継承テーブルを実装しようとしています(例:Address)。私はAddressから3クラスを派生させたいと思います。これらはEmployeeAddress,CustomerAddressSupplierAddressです。行で始まるマッピングフラグメントでの問題:階層ごとのEntity Frameworkテーブル継承

エラー3032:Addressコンクリートで、OwnerCategoryプロパティが含まれている場合

+-------------------+------------------------+ 
| Address   |> EmployeeAddress  | 
+-------------------+------------------------+ 
| ID    | ..      | 
| OwnerID   | EmployeeID    | 
| OwnerCategory  | (condition: where = 0) | 
| Street_1   | ..      | 
| Street_2   | ..      | 
| City    | ..      | 
| Province   | ..      | 
| PostalCode  | ..      | 
+-------------------+------------------------+ 
        |> CustomerAddress  | 
        +------------------------+ 
        | ..      | 
        | EmployeeID    | 
        | (condition: where = 1) | 
        | ..      | 
        | ..      | 
        | ..      | 
        | ..      | 
        | ..      | 
        +------------------------+ 
        |> SupplierAddress  | 
        +------------------------+ 
        | ..     | 
        | EmployeeID    | 
        | (condition: where = 2) | 
        | ..      | 
        | ..      | 
        | ..      | 
        | ..      | 
        | ..      | 
        +------------------------+ 

問題は...私は取得エラーを保つ

です 178:条件メンバー 'addresses.OwnerCategory'が 'IsNull = False'以外の という条件でマッピングされています。 addresses.OwnerCategoryの条件を削除するか、マッピングから削除してください。

Address抽象あるとOwnerCategoryプロパティが含まれます。IsNull = Falseの」以外の条件と条件メンバー 'addresses.OwnerCategory':マッピングフラグメントで

問題は、ライン178から始まるが' がマップされています。アドレスの条件を削除してください.OwnerCategoryまたは マッピングから削除してください。

'DtcInvoicer.Database.Address' は の定義が含まれていない 'OwnerCategory' と拡張子なしの方法:

Address具体的な

、そしてOwnerCategoryプロパティが含まれていません'DtcInvoicer.Database.Address'タイプの最初の引数 を受け入れる 'OwnerCategory'は です(使用するディレクティブまたはアセンブリ参照がありません)

ライン177から始まるマッピングフラグメントで

問題、195:EntityTypes Model.Address、Model.EmployeeAddressはテーブルアドレス内の同じ行 にマッピングされています。マッピング条件を使用して、これらの型がマップされている行を区別することができます。

Address抽象あるとき、私はすでに条件セット(OwnerCategory = 0)

を持っていないOwnerCategoryプロパティが含まれていない:

「DtcInvoicer.Databaseを。「Address」に の定義が含まれておらず、「OwnerCategory」の拡張メソッドがありません。 「DtcInvoicer.Database.Address」タイプの最初の引数を受け入れることができました。 (usingディレクティブまたはアセンブリ参照がありませんか?

ご協力いただきありがとうございます。

答えて

7

継承の条件でOwnerCategoryを使用しているため、プロパティにマップすることはできません。 Addressも抽象的に設定する必要があります。モデルからプロパティを削除し、そのプロパティを使用していたコードを修正してください。コンパイラが特定のメンバを見つけることができない場合には、それらの箇所を修正してください。

+0

ちょっと、私は上記のように 'OwnerCateogry'プロパティを削除し、' Address'をabstractに設定しようとしました。私は最後に述べたエラーを受け取ります。 –

+1

他のコードが 'OwnerCategory'を使っているようですが、' OwnerCategory'を使わないようにそのコードを修正する必要があります。 – scmccart

+0

ねえ、あなたが正しいと思われます。それは今働いているようだ。他の場所で使っていたと思う。再度、感謝します。 –

関連する問題