J'ai deux objets ... et si je compile un programme avec l'un ou l'autre, ça fonctionne bien, mais quand ils existent tous deux dans le même programme, je reçois l'exception ..L'entité participe déjà à une autre relation, Entity Framework CodeOnly
"Les entités dans 'ObjectContext.UnitSet' participent à la relation 'Sheet_Statistics', 0 'Sheet' a été trouvé, 1 'Sheet' est attendu."
class Unit
{
public int Id;
public string Name;
}
class Template
{
public int Id;
public virtual ICollection<Unit> Units
}
class Sheet
{
public int Id;
public virtual ICollection<Unit> Units
}
ensuite leurs configurations ..
TemplateConfiguration: EntityConfiguration // ....
//// map the collection entity
HasMany(k => k.Units).WithRequired()
.Map("template.units",
(template, unit) => new
{
Template = template.Id,
Unit = unit.Id
});
SheetConfiguration: EntityConfiguration // ....
//// map the collection entity
HasMany(k => k.Units).WithRequired()
.Map("sheet.units",
(sheet, unit) => new
{
Sheet = sheet.Id,
Unit = unit.Id
});
UnitConfiguration : EntityConfiguration<Unit>
//
// Initialize the Primary Key
HasKey(k => k.Id);
// Initialize that the Key Increments as an Identity
Property(k => k.Id).IsIdentity();
var templates = new List<Template>
{
new Template
{
Name = // ..,
Units = new List<Unit>
{
new Unit
{
// ...
}
}
}
};
templates.ForEach(x =>
{
context.Templates.Add(x);
});
context.SaveChanges(); // <-- Exception Happens Here, I never even get to try to add Sheets.
Où est le code qui lève réellement l'exception? –
Lorsque j'essaie d'ajouter un modèle à la base de données, et d'appeler "SaveChanges()" sur le contexte. – Ciel
Je suis avec Craig sur celui-ci, vous devez fournir plus de code pour cela. Est-ce honnêtement tout le code de cartographie? – TheCloudlessSky