我有一個linq查詢,它根據問題文本返回一個問題的ID。 然後需要使用此ID來將日期表中的日期與該特定問題相關聯。問題已存儲,日期存儲在不同的時間。C#Linq Guid匿名類型問題
問題是查詢以匿名類型的形式返回questionID,因此當我需要將另一個表中的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;
}
}
+1擊敗我35秒。 – 2009-05-05 09:21:55
我嘗試過,將代碼更改爲: dlu.QuestionID = matchedques; :收到這樣的: 錯誤:無法隱式轉換類型「System.Linq.IQueryable」到「的System.Guid」 \t C:\ Documents和 –
Goober
2009-05-05 09:26:15
sahgilbert - 見下文 – 2009-05-05 09:28:41