J'ai une requête linq qui renvoie l'ID d'une question en fonction du texte des questions. Cet ID doit ensuite être utilisé pour associer une date dans une table de dates à cette question particulière. La question est déjà enregistrée et la date est enregistrée à une heure différente. Le problème est que la requête retourne le questionID comme un type anonyme et donc quand j'ai besoin d'assigner ce questionID comme questionID dans une autre table, il jette une erreur, indiquant que la table attend un Guid. Suite à cela, j'ai converti le type anonyme en une chaîne et puis utilisé la fonctionnalité de conversion de GUID pour convertir la chaîne en un GUID, cependant il me donne maintenant l'erreur qu'un GUID devrait être 32 caractères et 4 tirets. Mes pensées à ce sujet sont que le type anonyme retourne le questionID en tant que "QuestionID = jkj939-89239829- etc etc." - Avec le préfixe des caractères au premier plan, et donc lors de la conversion en GUID, la chaîne convertie contient ces caractères.C# Linq Guid Anonyme Type Problème
Ai-je manqué quelque chose? Je ne peux vraiment pas comprendre pourquoi cela ferait, et y a-t-il un moyen de supprimer le préfixe retourné par le type anonyme? L'aide serait grandement appréciée.
Voici le code:
public static void GetQuesID(string quesText)
{
ExamineDataContext dc = new ExamineDataContext();
var matchedques = from q in dc.GetTable<Question>()
where q.QuestionText.Contains(quesText)
select new{
q.QuestionID
};
foreach (var element in matchedques)
{
MessageBox.Show(element.ToString());
}
try
{
Guid g = Guid.NewGuid();
Table<DateLastUsed> dlused = Repository.GetDateLastUsedTable();
DateLastUsed dlu = new DateLastUsed(); ;
string qidGuidString = matchedques.ToString();
Guid convQuesGuid = new Guid(qidGuidString);
dlu.DLUID = g;
dlu.QuestionID = convQuesGuid;
dlu.DateLastUsed1 = DateTime.Now;
dlused.InsertOnSubmit(dlu);
dlused.Context.SubmitChanges();
}
catch (Exception ex)
{
throw ex;
}
}
J'ai essayé, en changeant le code: dlu.QuestionID = correspondedques; REÇU ceci: Erreur: ne peut pas convertir implicitement le type 'System.Linq.IQueryable' à 'System.Guid' \t C: \ Documents and –
Goober
J'ai effectué la réponse pour y remédier. –
Bonjour, J'ai implémenté l'exemple de code que vous avez posté ci-dessus, et maintenant que le code se déclenche sans erreur comme avant, il n'insère pas de nouveaux détails. – Goober