Eine abhängige Eigenschaft in einem ReferentialConstraint zugeordnet ist, um ein Geschäft generierte Spalte. Spalte:

Zunächst einmal vielen Dank für die Zeit nehmen, dies zu Lesen. Ich habe einige Schwierigkeiten mit dem Versuch zum aktualisieren einer Datenbank mithilfe von EF. Ich habe diese Vorgehensweise vor, die auf einem anderen Projekt, also ich denke, die Frage ist vielleicht in der Datenbank, aber ich bin einfach nicht es zu sehen. Die Datenbank ist ein legacy-db in die SQL 2005, und die Namenskonvention hat eine Menge zu wünschen übrig, so habe ich das mapping inkonsistent Namen, um etwas mehr konsistent über die HasColumnName Methode: wie in.

        modelBuilder.Entity<Case_Person_1>().ToTable("dbo.Case_Person_1");
        modelBuilder.Entity<Case_Person_1>().Property(c => c.Id).HasColumnName("CaseNumber");

Habe ich verglich meine Frage zu den anderen ähnlichen und untersucht, um zu überprüfen, die Fremdschlüssel-Beziehungen sind schon in die richtige Richtung ist und dass die Identität nur auf der PK. Wenn ich NICHT über die Erstellung der Daten-Option explizit festgelegt, wird der Befehl feuert gegen die Datenbank, aber es funktioniert nicht b/c ich bin das einfügen einer " 0 " als meine Schlüssel und option explizit auf OFF festgelegt ist. Ich kann sehen, dass dies in SQL Profiler. Wenn ich die option für die Identität, bekomme ich die Referentielle constraint-Fehler.

Ich habe 2 Tage auf und bin nicht näher an das erreichen einer Lösung, und ich bin ziemlich am Ende meiner Kraft. Nebenbei, in meinem anderen Projekt habe ich nicht brauchen, zu dekorieren mein POCO ist mit der DatabaseGeneratedOption, doch ich bekam keine Fehler auf Einsätze. Ich wusste nicht, ob das ein SQL-2005-Sache, oder wenn ich bin fehlt etwas anderes...


vollständige Fehlerdetails ist hier:
System.Daten.Entität.Infrastruktur.DbUpdateException war gefangen

Message=Fehler beim aktualisieren der Einträge. Finden Sie die innere
Ausnahme für details. Source=EntityFramework StackTrace:
System.Daten.Entität.Intern.InternalContext.SaveChanges()
System.Daten.Entität.Intern.LazyInternalContext.SaveChanges()
System.Daten.Entität.DbContext.SaveChanges()
bei Scyfis.Ocyf.DataLayer.EntityExtensions.AddItem[T](T entity, DbSet1 dbSet, DbContext context, Action2 foriegnKeyUpdater) in
C:\TFS\CGProjects\GOC\SCYFIS\PHTSY\Dev\src\Datalayer\Helpers\EntityExtensions.cs:Zeile
83
bei Scyfis.Ocyf.DataLayer.EntityExtensions.SaveItem[T](T entity, DbSet1 dbSet, DbContext context, Action2 foriegnKeyUpdater) in
C:\TFS\CGProjects\GOC\SCYFIS\PHTSY\Dev\src\Datalayer\Helpers\EntityExtensions.cs:Zeile
27
bei Scyfis.Ocyf.DataLayer.Case_PHTSYRepository.Speichern(Case_PHTSY Modell) in
C:\TFS\CGProjects\GOC\SCYFIS\PHTSY\Dev\src\Datalayer\Custom\Case_PHTSYRepository.cs:Zeile
44
bei Scyfis.Ocyf.Service.Case_PHTSYService.Erstellen(Case_PHTSY Modell) in
C:\TFS\CGProjects\GOC\SCYFIS\PHTSY\Dev\src\Service\Custom\Case_PHTSYService.cs:Zeile
184 InnerException: System.Daten.UpdateException
Message=Fehler beim aktualisieren der Einträge. Finden Sie unter der inneren Ausnahme für details.
Source=System.Daten.Entity
StackTrace:
System.Daten.Mapping.Update.Intern.TableChangeProcessor.CompileCommands(ChangeNode
changeNode, UpdateCompiler compiler)
System.Daten.Mapping.Update.Intern.UpdateTranslator.d_0.MoveNext()
System.Linq -.Enumerable.d
_711.MoveNext()
at System.Data.Mapping.Update.Internal.UpdateCommandOrderer..ctor(IEnumerable
1
Befehle, UpdateTranslator übersetzer)
System.Daten.Mapping.Update.Intern.UpdateTranslator.ProduceCommands()
System.Daten.Mapping.Update.Intern.UpdateTranslator.Update(IEntityStateManager
stateManager, IEntityAdapter adapter)
System.Daten.EntityClient.EntityAdapter.Update(IEntityStateManager
entityCache)
System.Daten.Objekte.ObjectContext.SaveChanges(SaveOptions options)
System.Daten.Entität.Intern.InternalContext.SaveChanges()
InnerException: System.InvalidOperationException
Message=Eine abhängige Eigenschaft in einem ReferentialConstraint zugeordnet ist, um ein Geschäft generierte Spalte. Column: 'Id'.
Source=System.Daten.Entity
StackTrace:
System.Daten.Mapping.Update.Intern.UpdateCompiler.BuildSetClauses(DbExpressionBinding
Ziel PropagatorResult Zeile, PropagatorResult originalRow,
TableChangeProcessor Prozessor, Boolean insertMode, Dictionary`2&
outputIdentifiers, DbExpression& die Rückkehr, Boolean& rowMustBeTouched)
System.Daten.Mapping.Update.Intern.UpdateCompiler.BuildInsertCommand(PropagatorResult
newRow, TableChangeProcessor Prozessor)
System.Daten.Mapping.Update.Intern.TableChangeProcessor.CompileCommands(ChangeNode
changeNode, UpdateCompiler compiler)
InnerException:

public partial class Case_PHTSY
{
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }                 
    public int? FamilyHistoryID { get; set; } 
    public int? PersonId { get; set; }              
    public DateTime? ReportDate { get; set; }       
    public string PhysicianName { get; set; }       
    public string MRNumber { get; set; }
    public virtual  F_FamilyHistory F_FamilyHistory { get; set; }
    public virtual  Person Person { get; set; }

    public virtual ICollection<CP_ActualDischarge> CP_ActualDischarges { get; set; }
    public virtual ICollection<CP_Barrier> Barriers { get; set; }
    public virtual ICollection<CP_AgencyContact> AgencyContacts { get; set; }
    public virtual ICollection<CP_DischargeActivity> DischargeActivities { get; set; }
    public virtual ICollection<C_Role> Roles { get; set; }
    public virtual ICollection<Case_Person_RD1> Case_Person_RD1s { get; set; }
    public virtual ICollection<PHTSY_CensusCode> PHTSY_CensusCodes { get; set; }     
}

public class CP_ActualDischarge
{
    public int Id { get; set; }

    [ForeignKey("Case_PHTSY")]
    public int Case_PHTSYId{ get; set; }

    ...

    public virtual Case_PHTSY Case_PHTSY { get; set; }
}

public partial class CP_Barrier 
{

    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; } 

    public int? Case_PHTSYId { get; set; }

   ...

    public virtual  Case_PHTSY Case_PHTSY { get; set; }

}


public partial class CP_AgencyContact 
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; } 

    public int Case_PHTSYId { get; set; }               
    ...

    public virtual  Case_PHTSY Case_PHTSY { get; set; }

}

public partial class CP_DischargeActivity 
{

    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; } 

    public int? Case_PHTSYId { get; set; }

    ...             

    public virtual  Case_PHTSY Case_PHTSY { get; set; }

}

 public partial class C_Role
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; } 

    public int? Case_PHTSYId{ get; set; }
    public virtual Case_PHTSY Case_PHTSY { get; set; }
}

}

 public partial class Case_Person_RD1
{
    public virtual C_Role C_Role { get; set; }

    public virtual Case_PHTSY Case_PHTSY { get; set; }
}

Fremdschlüssel:

    ALTER TABLE [dbo].[CP_ActualDischarge]  WITH NOCHECK ADD  CONSTRAINT         [FK_CP_ActualDischarge_Case_PHTSY] FOREIGN KEY([Case_PHTSYId])
    REFERENCES [dbo].[Case_PHTSY] ([Id])
    ON DELETE CASCADE
    NOT FOR REPLICATION 
    GO
    ALTER TABLE [dbo].[CP_ActualDischarge] CHECK CONSTRAINT [FK_CP_ActualDischarge_Case_PHTSY]

    ALTER TABLE [dbo].[CP_AgencyContacts]  WITH NOCHECK ADD  CONSTRAINT         [FK_CP_AgencyContacts_Case_PHTSY] FOREIGN KEY([Case_PHTSYId])
    REFERENCES [dbo].[Case_PHTSY] ([Id])
    ON DELETE CASCADE
    NOT FOR REPLICATION 
    GO
ALTER TABLE [dbo].[CP_AgencyContacts] CHECK CONSTRAINT [FK_CP_AgencyContacts_Case_PHTSY]

    ALTER TABLE [dbo].[CP_Barriers]  WITH NOCHECK ADD  CONSTRAINT     [FK_CP_Barriers_Case_PHTSY] FOREIGN KEY([Case_PHTSYId])
REFERENCES [dbo].[Case_PHTSY] ([Id])
ON DELETE CASCADE
NOT FOR REPLICATION 
GO
ALTER TABLE [dbo].[CP_Barriers] CHECK CONSTRAINT [FK_CP_Barriers_Case_PHTSY]

ALTER TABLE [dbo].[CP_DischargeActivities]  WITH NOCHECK ADD  CONSTRAINT [FK_CP_DischargeActivities_Case_PHTSY] FOREIGN KEY([Case_PHTSYId])
REFERENCES [dbo].[Case_PHTSY] ([Id])
ON DELETE CASCADE
NOT FOR REPLICATION 
GO
ALTER TABLE [dbo].[CP_DischargeActivities] CHECK CONSTRAINT [FK_CP_DischargeActivities_Case_PHTSY]
GO


        modelBuilder.Entity<Case_PHTSY>().HasMany(c => c.AgencyContacts).WithOptional().HasForeignKey(k => k.Case_PHTSYId);
            modelBuilder.Entity<Case_PHTSY>().HasMany(c => c.Barriers).WithOptional().HasForeignKey(k => k.Case_PHTSYId);
            modelBuilder.Entity<Case_PHTSY>().HasMany(r => r.DischargeActivities).WithOptional().HasForeignKey(k => k.Case_PhstsyId);
            modelBuilder.Entity<Case_PHTSY>().HasMany(c => c.Roles).WithOptional().HasForeignKey(k => k.Case_PHTSYId);
            modelBuilder.Entity<Case_PHTSY>().HasMany(m => m.Case_Person_RD1s).WithOptional().HasForeignKey(k => k.Case_PhtsyId);
            modelBuilder.Entity<Case_PHTSY>().HasMany(o => o.DischargeActivities).WithOptional().HasForeignKey(k => k.Case_PhstsyId);
            modelBuilder.Entity<Case_PHTSY>().HasOptional(o => o.F_FamilyHistory).WithRequired();
            modelBuilder.Entity<Case_PHTSY>().HasMany(o => o.PHTSY_CensusCodes).WithOptional().HasForeignKey(k => k.Case_PHTSYId);



the primary table: 
CREATE TABLE [dbo].[Case_PHTSY](
    [Id] [int] IDENTITY(5000,1) NOT FOR REPLICATION NOT NULL,
    [FamilyHistoryID] [int] NULL,   
    [IntensityNHours] [smallint] NULL,
    [IEPRequested] [bit] NULL CONSTRAINT [DF_Case_PHTSY_IEPRequested]  DEFAULT (0),
    ...
    [Kidnet] [bit] NULL,
 CONSTRAINT [PK_Case_PHTSY] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[Case_PHTSY]  WITH NOCHECK ADD  CONSTRAINT [FK_Case_PHTSY_F_FamilyHistory] FOREIGN KEY([FamilyHistoryID])
REFERENCES [dbo].[F_FamilyHistory] ([FamilyHistoryID])
ON DELETE CASCADE
NOT FOR REPLICATION 
GO
ALTER TABLE [dbo].[Case_PHTSY] CHECK CONSTRAINT [FK_Case_PHTSY_F_FamilyHistory]
GO
ALTER TABLE [dbo].[Case_PHTSY]  WITH CHECK ADD  CONSTRAINT [FK_Case_PHTSY_Persons] FOREIGN KEY([CaseChildID])
REFERENCES [dbo].[Persons] ([PersonID])
GO
ALTER TABLE [dbo].[Case_PHTSY] CHECK CONSTRAINT [FK_Case_PHTSY_Persons]

CREATE TABLE [dbo].[CP_ActualDischarge](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Case_PHTSYId] [int] NOT NULL,
    [DischargeDate] [datetime] NULL,

 CONSTRAINT [PK_CP_ActualDischarge] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[CP_ActualDischarge]  WITH NOCHECK ADD  CONSTRAINT [FK_CP_ActualDischarge_Case_PHTSY] FOREIGN KEY([Case_PHTSYId])
REFERENCES [dbo].[Case_PHTSY] ([Id])
ON DELETE CASCADE
NOT FOR REPLICATION 
GO
ALTER TABLE [dbo].[CP_ActualDischarge] CHECK CONSTRAINT [FK_CP_ActualDischarge_Case_PHTSY]

CREATE TABLE [dbo].[CP_AgencyContacts](
    [AgencyContactID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
    [Case_PHTSYId] [int] NOT NULL,
    [AgencyType] [int] NULL,
    [Agency] [int] NULL,
 CONSTRAINT [PK_Case_PHTSY_AgencyContacts] PRIMARY KEY CLUSTERED 
(
    [AgencyContactID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[CP_AgencyContacts]  WITH NOCHECK ADD  CONSTRAINT [FK_CP_AgencyContacts_Case_PHTSY] FOREIGN KEY([Case_PHTSYId])
REFERENCES [dbo].[Case_PHTSY] ([Id])
ON DELETE CASCADE
NOT FOR REPLICATION 
GO
ALTER TABLE [dbo].[CP_AgencyContacts] CHECK CONSTRAINT [FK_CP_AgencyContacts_Case_PHTSY]
Schreibe einen Kommentar