J'ai deux tables Plantes et informations. Pour chaque plante, il y a beaucoup d'informations, mais pour chaque plante il y a une seule information principale. Il y a donc une relation un-à-plusieurs et une relation un-à-un entre les deux. La table Information a un PlantID et la table Plants a un MainInformationID. Je veux que les deux champs dans les deux tables ne soient pas null. Mais maintenant vous ne pouvez pas insérer l'un ou l'autre des deux enregistrements dans leurs tables, car chacun d'eux nécessite que leurs champs ne soient pas nuls, ce qui signifie qu'ils ont besoin que l'autre enregistrement soit créé en premier pour se créer. Peut-être que ce n'est pas une bonne conception de base de données et quelque chose devrait être changé? (Je suis nouveau aux bases de données et au cadre d'entité)Problème d'insertion de relation de base de données à double connexion
J'ai essayé d'insérer dans la base de données elle-même manuellement mais je ne peux pas le faire. J'ai également essayé ce code avec EntityFramework.
using (var context = new MyEntities())
{
var p = new Plant()
{
LatinName = "latinNameTest",
LocalName = "localNameTest",
CycleTime = 500
};
var i = new Information()
{
ShortDescription = "ShortDesc",
LongDescription = "LongDesc"
};
p.MainInformation = i;
i.Plant = p;
context.AddToPlants(p);
context.AddToInformation(i);
context.SaveChanges();
}
Je vais aller avec la première option, j'ai également considéré la troisième option, mais nous ne l'avons pas fait. Je suis intéressé par la deuxième option que vous avez mentionnée. Pourrait expliquer un peu plus sur la façon de le faire? – synepis
ALTER TABLE MyTable NOCHECK CONTRAINT FK ... http://msdn.microsoft.com/fr-fr/library/ms190273(SQL.90).aspx – gbn
Aussi, j'ai répondu ici: http://stackoverflow.com/questions/737115/contraintes-de-blocage-temporairement/737167 # 737167 – gbn