2010-04-19 9 views
1

J'ai fait une grosse erreur, maintenant je dois trouver une solution. Ce fut mon premier projet de travailler avec Fluent NHibernate, je mis en correspondance un objet de cette façon:Gros problème avec nhibernate fluide, C# et MySQL doivent chercher dans BLOB

public PosteCandidateMap() 
    { 
     Id(x => x.Id); 
     Map(x => x.Candidate); 
     Map(x => x.Status); 
     Map(x => x.Poste); 
     Map(x => x.MatchPossibility); 
     Map(x => x.ModificationDate); 
    } 

donc tout l'objet Poste est dans la base de données, mais j'aurais besoin que de la PosteId. Maintenant, je dois trouver tous les candidats à un Poste quand je regarde dans mon dépôt j'ai:

return GetAll().Where(x => x.Poste.Id == id).ToList(); 

Mais cela est très lent car il charge tous les éléments, nous avons maintenant plus de 1500 articles dans la table, Au départ, le projet n'était pas censé être aussi grand (pas un gros salaire non plus). Maintenant j'essaye de faire ça avec le critère ou Linq mais ça ne marche pas puisque mon poste est dans un BLOB.

Y at-il de toute façon que je peux changer cela facilement?

Merci beaucoup pour votre aide!

Répondre

0

Ok donc ce que j'ai fait est de créer un nouvel objet/table/référentiel, fait un peu pour toutes mes anciennes données, l'analyser dans le nouvel objet qui ne contient que les ID, les enregistrer dans le BD tout mon vieux dépôt à mon nouveau référentiel et les travaux effectués!

J'espère que ça aide!

+0

Vous ne pouvez pas simplement 'Get (id)'? On dirait une façon naturelle de le faire – Shagglez