2011-08-31 3 views
2

Je ne sais même pas si je vais poser cette question correctement, alors gardez-moi car ma connaissance de C# a été tout au travail pour les 2 dernières années, donc je suis sûr qu'il me manque des connaissances rudimentaires en programmation.Je ne peux pas accéder à EnforceConstraints?

J'ai récemment repris un projet et le précédent programmeur avait quelques "styles" intéressants, y compris l'utilisation de DLL compilées et similaires. Le problème que je suis en cours d'exécution en est maintenant ceci:

Il semble qu'il « écrasait » la classe DataSet que le code actuel ressemble

TAU_DataSet.tblNodesDataTable dtNodes = new TAU_DataSet.tblNodesDataTable();    
TAU_DataSetTableAdapters.tblNodesTableAdapter daNodes = new  TAU_DataSetTableAdapters.tblNodesTableAdapter(); 

Je ne peux même pas créer un DataSet normal si je voulais. Au moment où la page génère un «Échec de l'activation des contraintes, une ou plusieurs lignes contiennent des valeurs qui violent les contraintes non nulles, uniques ou à clé étrangère». Erreur. Je connais la requête et tout le reste est correct car le même code et XSD sont utilisés sur une version mobile du site.

Je pensais que je pouvais simplement définir EnforceConstraints à false pour contourner cette erreur, mais cela renvoie l'erreur qu'il ne contient pas de définition pour cela.

J'espère que ce n'est pas trop vague. J'essaie juste de comprendre comment contourner ce problème. Idéalement, le site serait réécrit sans DLL compilées et similaires, mais le site est grand et il appartient à des personnes plus haut que moi de prendre cette décision.

+1

Les fichiers .dll compilés doivent représenter la séparation des problèmes et des couches. Tant que vous avez accès à la source pour ces fichiers .dll, vous devriez être d'accord. Si le programmeur précédent n'a pas laissé de source pour ceux-ci, vous pourriez être dans un sprint de réécriture. – IAbstract

+0

Heureusement, les DLL compilées ne sont pas utilisées dans cette instance, même si elles ont causé beaucoup d'autres maux de tête. – BehemothDan

Répondre

2

Vous pouvez toujours créer un DataSet normal si vous voulez:

global::System.Data.DataSet x = new global::System.Data.DataSet(); // example 

On dirait que vous rencontrez des problèmes de collision d'espace de noms ou quelque chose?

+0

Donc, dans Class View, j'ai trouvé l'endroit où le TAU_DataSet personnalisé hérite du Global.System.Data.DataSet. Comment modifier cet héritage afin que TAU_DataSet inclue la propriété EnforceContraints? – BehemothDan

+1

Probablement le constructeur du nouveau type. S'il s'agit d'un héritage, la classe dérivée doit avoir la même propriété que le parent. – Tejs

Questions connexes