簡體   English   中英

在WP8的C#中的Linq DB中插入之前搜索是否存在

[英]Search if exist before insert in Linq DB in C# for WP8

我正在處理WP8問題應用程序,該應用程序將數據發送到DB,但是將跳過現有數據。 我有一個名為“ DBHelper.cs”的類,它包含

public static void InsertQuestion(Question oQuestion)
{
    using (var context = new QuestionContext(ConnectionString))
    {
        if(context.DatabaseExists())
        {
            Question oQuestionWord = (from ostd in context.Questions where ostd.Word == oQuestion.Word select ostd).Single();
            if (oQuestionWord.Word == null)
            {
                context.Questions.InsertOnSubmit(oQuestion);
                context.SubmitChanges();
            }
        }
    }
}

而此代碼在mainpage.xaml.cs中

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    Question oQuestion = new Question();
    oQuestion.Word = "One";
    DBHelper.InsertQuestion(oQuestion);``
    oQuestion = new Question();
    oQuestion.Word = "Two";
    DBHelper.InsertQuestion(oQuestion);
    oQuestion = new Question();
    oQuestion.Word = "One";
    DBHelper.InsertQuestion(oQuestion);
    base.OnNavigatedTo(e);
}

構建解決方案時沒有錯誤,但是在啟動應用程序時會崩潰。

我相信錯誤的原因是Single方法。 如果發現多個記錄,則Single引發異常。 嘗試改用FirstOrDefault

var oQuestionWord = context.Questions.FirstOrDefault(q => q.Word == oQuestion.Word);
if (oQuestionWord != null && oQuestionWord.Word == null)
{
    context.Questions.InsertOnSubmit(oQuestion);
    context.SubmitChanges();
}

可能您沒有收到有用的異常消息,因為它發生在OnNavigatedTo事件中OnNavigatedTo您可能想看一下這個問題 ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM