0
StackTrace = "   at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)\r\n   at System.Data.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__0[TResult](IEnumerable`1 sequence)\r\n   at System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult]...

エンティティフレームワークを使用してテーブルからレコードを取得できなくなる前に、それは機能していました

edmxファイルに変更を加える前に正常に機能した問題が何であるかわかりません

  public bool SetClientIdForUser(string username, string clientId)
    {
        aspnet_Users aspnetUsers = _objVaccinationContext.aspnet_Users.First(t => t.UserName == username);
        //aspnetUsers.Client_Id = clientId;
        aspnetUsers.Client_id = clientId;
        var entry = _objVaccinationContext.Entry(aspnetUsers);
        entry.State = EntityState.Modified;
        _objVaccinationContext.SaveChanges();
        return true;
    }

ここに画像の説明を入力

接続文字列: <add name="ChildVaccinationEntities" connectionString="metadata=res://*/ChildVaccinationContext.ChildVaccination.csdl|res://*/ChildVaccinationContext.ChildVaccination.ssdl|res://*/ChildVaccinationContext.ChildVaccination.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=localhost;initial catalog=CVSUAT;user id=sa;password=Password123;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

注:テーブルの最初のレコードは取得したいレコードであるため、他の機能は使用できません

4

2 に答える 2

2

FirstOrDefault を使用してから null をチェックできます

aspnet_Users aspnetUsers = _objVaccinationContext.aspnet_Users.FirstOrDefault(t => t.UserName == username);

if(aspnetUsers != null)
{

  //do your stuff
return true
}

else
{
return false
}
于 2013-02-05T07:44:26.197 に答える
1

Firstフィルタリングされたシーケンスに少なくとも1つの要素が含まれていない場合、LINQのメソッドは例外をスローします。したがってusername、データベース内にが見つからない場合、このコード行はエラーをスローします。を使用FirstOrDefaultして確認できますnull

于 2013-02-05T07:44:44.560 に答える