ich ein Problem, das Einfügen mit Entity Framework von Child-Objekt habe 6.Entity Framework Einfügen Datensatz mit zusammengesetzten Schlüssel Einfügen nicht zweiten Feld
Ich habe zwei Klassen:
public class RoleInstance
{
[Key, Column(Order = 1)]
public long RoleId { get; set; }
[Key, Column(Order = 2)]
public string EnvirCode { get; set; }
public int PathId { get; set; }
public char Published { get; set; }
[ForeignKey("RoleId")]
public virtual Role Role { get; set; }
[ForeignKey("PathId")]
public virtual RoutingPath RoutingPath { get; set; }
[ForeignKey("EnvirCode")]
public virtual Environment Environment { get; set; }
public ICollection<ActiveDirectoryGroup> ActiveDirectoryGroups { get; set; }
}
public class ActiveDirectoryGroup
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Column(Order = 1), Key]
public long RoleId { get; set; }
[Column(Order = 2), Key]
public string EnvirCode { get; set; }
public string GroupName { get; set; }
public string GroupGuid { get; set; }
public char AuditGroup { get; set; }
[ForeignKey("RoleId,EnvirCode")]
public virtual RoleInstance RoleInstance { get; set; }
}
Ich versuche einfügen ein Datensatz mit Code wie folgt:
RoleInstance ri = new RoleInstance { RoleId = 1,
EnvirCode = "ENVIR",
PathId = 5,
Published = 'Y'
ActiveDirectoryGroups = new List<ActiveDirectoryGroups>()
};
ri.ActiveDirectoryGroups.Add(new ActiveDirectoryGroup() {
GroupName = "GROUP NAME",
AuditGroup = 'Y'
};
_db.Context.Add(ri);
Dann, wenn ich es speichern, den Datensatz in RoleInstance
Fein fügt das Entity Framework stellt nicht die EnvirCode
in der ActivityDirectoryGroup
. Diese
ist, was meine modelBuilder
wie folgt aussieht:
modelBuilder.Entity<ActiveDirectoryGroup>()
.HasRequired(e => e.RoleInstance)
.WithMany(e => e.ActiveDirectoryGroups)
.HasForeignKey(e => new {e.RoleId, e.EnvirCode});
Danke, das wies darauf hin, was ich falsch mache. In dem von Ihnen bereitgestellten Beispiel würden wir einen Datensatz in der Environment-Tabelle erstellen oder würde der Entitätsrahmen diese Referenz suchen? Ich habe den Code zu arbeiten, wenn ich entweder das Feld Umgebung im Code aufgefüllt oder wenn ich diese Fremdschlüssel Referenz in der RoleInstance-Klasse entfernt habe. Danke, –