2011-09-01 15 views
6

Sto cercando di implementare la tabella per l'ereditarietà della gerarchia con alcune delle tabelle del mio database, ad esempio Address. Voglio derivare 3 classi da Address, queste sono EmployeeAddress, CustomerAddress, SupplierAddress.Tabella quadro entità per ereditarietà gerarchica

+-------------------+------------------------+ 
| 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) | 
        | ..      | 
        | ..      | 
        | ..      | 
        | ..      | 
        | ..      | 
        +------------------------+ 

Il problema è che io continuo a ricevere gli errori ...

Quando Address è concreta, e contiene la proprietà OwnerCategory:

Errore 3032: Problema in frammenti di mappatura partire dalla riga 178: membro di condizione 'indirizzi.OwnerCategory' con una condizione altro di 'IsNull = False' è mappato. Rimuovere la condizione sugli indirizzi . Categoria utente o rimuoverla dalla mappatura.

Quando Address è astratta e contiene la proprietà OwnerCategory:

problema in frammenti di mappatura partire dalla riga 178: Condizione membro 'addresses.OwnerCategory' con una condizione diversa da 'IsNull = False ' è mappato. Rimuovere la condizione sugli indirizzi.OwnerCategory o rimuoverlo dalla mappatura.

Quando Address è concreta, e non significa contiene la proprietà OwnerCategory:

'DtcInvoicer.Database.Address' non contiene una definizione per 'OwnerCategory' e nessun metodo di estensione "ProprietarioCategoria" che accetta un primo argomento di tipo di tipo "DtcInvoicer.Database.Address" potrebbe essere trovato (manca una direttiva using o un riferimento di assembly?)

e

Problemi in frammenti mappatura a partire da linee 177, 195: EntityTypes Model.Address, Model.EmployeeAddress vengono mappati alle stesse righe in indirizzi tabella. Le condizioni di mappatura possono essere utilizzate per distinguere le righe a cui sono associati questi tipi.

(ho già il set di condizione (quando OwnerCategory = 0)

Quando Address è astratta e non contiene la proprietà OwnerCategory:

'DtcInvoicer.Database.L'indirizzo "non contiene una definizione per " OwnerCategory "e nessun metodo di estensione" OwnerCategory "che accetta un primo argomento di tipo" DtcInvoicer.Database.Address " (manca una direttiva using o un riferimento assembly?)

Qualsiasi aiuto è apprezzato, grazie in anticipo.

risposta

7

Poiché si utilizza OwnerCategory nelle condizioni per l'eredità, non può essere mappato a una proprietà. Sembra anche che dovresti avere Address impostato per astrarre. Assicurati di eliminare la proprietà dal tuo modello e di modificare qualsiasi codice che lo stesse usando. Gli errori di non mappatura che hai citato sembrano essere l'errore standard quando il compilatore non riesce a trovare un membro specifico, quindi assicurati di correggere questi punti.

+0

Ehi, ho provato a rimuovere la proprietà 'OwnerCateogry' e ad impostare' Address' come astratto come accennato sopra. Ottengo l'errore che ho citato alla fine. –

+1

A destra, sembra che un altro codice stia usando 'OwnerCategory', dovrai modificare quel codice per non usare' OwnerCategory'. – scmccart

+0

Ehi, sembra che avessi ragione. Sembra che funzioni adesso. Penso che lo stavo usando altrove. Grazie ancora. –

Problemi correlati