У меня есть запрос linq, который возвращает идентификатор вопроса на основе текста вопросов. Затем этот идентификатор необходимо использовать, чтобы связать дату в таблице дат с этим конкретным вопросом. Вопрос уже сохранен, а дата сохранена в другое время.
Проблема в том, что запрос возвращает идентификатор вопроса как анонимный тип, поэтому, когда мне нужно назначить этот идентификатор вопроса в качестве идентификатора вопроса в другой таблице, он выдает ошибку, утверждая, что таблица ожидает Guid. После этого я преобразовал анонимный тип в строку, а затем использовал функцию преобразования GUID для преобразования строки в GUID, однако теперь мне выдается ошибка, что GUID должен состоять из 32 символов и 4 тире.
Мои мысли по этому поводу заключаются в том, что анонимный тип возвращает questionID как «QuestionID = jkj939-89239829-etc и т. д.». - С префиксом символов впереди и, таким образом, при преобразовании в GUID преобразованная строка содержит эти символы.
Я что-то пропустил? Я действительно не могу понять, зачем это делать, и есть ли способ удалить префикс, возвращаемый анонимным типом? Помощь будет принята с благодарностью.
Вот код:
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;
}
}