54 messaggi dal 08 aprile 2002
Salve tutti
premetto che mi sto avvicinando ora ad entity framework dopo una breve esperienza con LinqToSql e vi espongo rapidamente il mio problema... in un modello EF devo creare manualmente un 'associazione tra una DefiningQuery ed una tabella di cui la DefiningQuery è la lookup e quando tento di compilare ricevo il seguente errore
                                                                            
Error 3007: Problem in Mapping Fragments starting at lines %, %: Non-Primary-Key column(s) [%] are being mapped in both fragments to different conceptual side properties - data inconsistency is possible because the corresponding conceptual side properties can be independently modified.


vi riporto per completezza l'xml del grafo per le tabelle interessate

    
    <!-- SSDL content -->    
....    
<EntitySet Name="Anagrafica" EntityType="Model.Store.Anagrafica" store:Type="Tables" Schema="dbo" />    
    
          <EntitySet Name="vieNazioni" EntityType="Model.Store.vieNazioni" store:Type="Views" store:Schema="dbo" store:Name="vieNazioni">    
            <DefiningQuery>SELECT     
      [vieNazioni].[COD_NAZ] AS [COD_NAZ],     
      [vieNazioni].[DESCRIZIONE] AS [DESCRIZIONE],     
      [vieNazioni].[DESC_ITA_BREVE] AS [DESC_ITA_BREVE],     
      [vieNazioni].[DESC_BREVE] AS [DESC_BREVE],     
      [vieNazioni].[DT_ISTITUZIONE] AS [DT_ISTITUZIONE],     
      [vieNazioni].[DT_SOPPRESSIONE] AS [DT_SOPPRESSIONE]    
      FROM server.altrodb.[dbo].[Nazioni] AS [vieNazioni]</DefiningQuery>    
          </EntitySet>    
....   
<EntityType Name="Anagrafica">   
          <Key>   
            <PropertyRef Name="Posizione" />   
          </Key>   
          <Property Name="Posizione" Type="int" Nullable="false" />   
          <Property Name="Cognome" Type="char" Nullable="false" MaxLength="100" />   
          <Property Name="Nome" Type="char" Nullable="false" MaxLength="100" />   
          <Property Name="Sesso" Type="char" MaxLength="1" />   
          <Property Name="Data_nascita" Type="datetime" />   
          <Property Name="Anno_Apertura" Type="int" />   
          <Property Name="Luogo_Nascita" Type="varchar" MaxLength="100" />   
          <Property Name="Cittadinanza" Type="varchar" MaxLength="4" />   
          <Property Name="Indirizzo" Type="varchar" MaxLength="255" />   
          <Property Name="Stato" Type="varchar" MaxLength="4" />   
          <Property Name="Provincia" Type="char" MaxLength="2" />   
          <Property Name="Citta" Type="varchar" MaxLength="255" />   
          <Property Name="Professione" Type="varchar" MaxLength="255" />   
          <Property Name="Titolo" Type="varchar" MaxLength="30" />   
          <Property Name="Note" Type="varchar" MaxLength="1000" />   
          <Property Name="CREATED_BY" Type="varchar" Nullable="false" MaxLength="200" />   
          <Property Name="DT_CREATION" Type="datetime" Nullable="false" />   
          <Property Name="MODIFIED_BY" Type="varchar" Nullable="false" MaxLength="200" />   
          <Property Name="DT_MODIFY" Type="datetime" Nullable="false" />   
        </EntityType>   
<EntityType Name="vieNazioni">   
          <Key>   
            <PropertyRef Name="COD_NAZ" />   
          </Key>   
          <Property Name="COD_NAZ" Type="varchar" Nullable="false" MaxLength="4" />   
          <Property Name="DESCRIZIONE" Type="varchar" Nullable="false" MaxLength="80" />   
          <Property Name="DESC_ITA_BREVE" Type="varchar" MaxLength="40" />   
          <Property Name="DESC_BREVE" Type="varchar" Nullable="false" MaxLength="40" />   
          <Property Name="DT_ISTITUZIONE" Type="datetime" Nullable="false" />   
          <Property Name="DT_SOPPRESSIONE" Type="datetime" />   
        </EntityType>   
.....   
 <Association Name="vieNazioniAnagraficaFK1">  
      <End Role="vieNazioni" Type="Model.Store.vieNazioni" Multiplicity="0..1" />  
      <End Role="Anagrafica" Type="Model.Store.Anagrafica" Multiplicity="*" />  
      <ReferentialConstraint>  
        <Principal Role="vieNazioni">  
          <PropertyRef Name="COD_NAZ" />  
        </Principal>  
        <Dependent Role="Anagrafica">  
          <PropertyRef Name="Cittadinanza" />  
        </Dependent>  
      </ReferentialConstraint>  
    </Association>  
.....  
    <!-- CSDL content -->  
<EntitySet Name="Anagrafica" EntityType="Model.Anagrafica" />  
<EntitySet Name="vieNazioni" EntityType="Model.vieNazioni" />  
....  
          <AssociationSet Name="vieNazioniAnagraficaFK1" Association="OnorModel.vieNazioniAnagraficaFK1">  
            <End Role="vieNazioni" EntitySet="vieNazioni" />  
            <End Role="Anagrafica" EntitySet="Anagrafica" />  
      </AssociationSet>  
<Association Name="vieNazioniAnagraficaFK1">  
          <End Type="OnorModel.vieNazioni" Role="vieNazioni" Multiplicity="1" />  
          <End Type="OnorModel.Anagrafica" Role="Anagrafica" Multiplicity="*" />  
    </Association>  


e qui è dove si presenta l'errore
  
<!-- C-S mapping content -->  
          <AssociationSetMapping Name="vieNazioniAnagraficaFK1" TypeName="Model.vieNazioniAnagraficaFK1" StoreEntitySet="Anagrafica">  
            <EndProperty Name="vieNazioni">  
              <ScalarProperty Name="COD_NAZ" ColumnName="Cittadinanza" /></EndProperty>  
            <EndProperty Name="Anagrafica">  
              <ScalarProperty Name="Posizione" ColumnName="Posizione" /></EndProperty></AssociationSetMapping></EntityContainerMapping>  
      </Mapping>  


ringrazio per l'attenzione che vorrete prestarmi
3.082 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao

Sembra come se la classe non abbia nemmeno un campo chiave. EF ha bisogno che le entity abbiano sempre almeno una proprietà chiave, e se non riesce a dedurla dal database allora tutti i campi della entity diventano chiave.

tramite designer imposta qualche proprietà come chiave.

HTH
.

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy
54 messaggi dal 08 aprile 2002
come n ce l'ha?
allora questo tag a che serve?
<Key> 
<PropertyRef Name="Posizione" /> 
</Key> 

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.