질문 텍스트를 기반으로 질문 ID를 반환하는 linq 쿼리가 있습니다. 이 ID는 날짜 표의 날짜를 특정 질문과 연관시키는 데 사용해야합니다. 질문은 이미 저장되어 있으며 날짜는 다른 시간에 저장됩니다.C# Linq Guid 익명 형식 문제
문제는 쿼리 ID가 익명 형식으로 반환되므로 해당 questionID를 다른 테이블의 questionID로 할당해야 할 때 테이블에 Guid가 필요하다는 것을 나타내는 오류가 발생합니다. 이 후 익명 형식을 문자열로 변환 한 다음 GUID로 변환하여 GUID로 변환했지만 GUID는 32 자 및 4 개의 대시가되어야한다는 오류를 표시합니다.
내 생각에 익명 형식이 questionID를 "QuestionID = jkj939-89239829- 등"으로 반환하고 있습니다. - 앞에 접두어가 붙어 있으므로 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;
}
}
아래에있는 내 대답은 내가 시도를 참조 그에게 코드를 변경 : dlu.QuestionID = matchedques; 암시 적으로 'System.Guid'\t C로 유형 'System.Linq.IQueryable을'변환 할 수 없습니다 : \ 문서 및 –
Goober
나는이 문제를 해결하는 답을 편집 오류 : 이를 받았다. –
안녕하세요, 위에 게시 한 코드 샘플을 구현했습니다. 이전에는 코드가 오류없이 실행되었지만 실제로는 새로운 세부 정보를 삽입하지 않습니다. – Goober