LINQ와 관련하여 저는 미남입니다. 좀 널 (null) 예외를 읽은 그들 중 대부분은 문제의 루트로 ... sth.AsEnumerable()에서 ... LINQ - 특정 셀 값을 가져 오는 데 null 예외가 발생했습니다.
을을 지적했다.내가으로 실행했습니다 :
기능 평가를 실행하는 모든 스레드가 필요합니다.
나는 TrashPlaces에서
필드 이름
를 검색하려고합니다 (2 개 필드 만이 - ID와 이름) 내가 UserPlace 기록에서 얻을 문자열 ID로를 (UserPlace 2 키가 - 1은 AspNetUsers에서 검색 할 수있는 userId이고 다른 하나는 TrashPlace ID입니다. 나는이 LINQ 코드에 널 (null) 문제로 실행했습니다
public ActionResult JsonResult() { var users = db.AspNetUsers; //this was added, so I could root out mismatch in the queryId var nameformyuser = User.Identity.Name; //the null starts here and no-shock it goes further (meaning query is null and //can't do nothing later) var queryId = from user in users.AsEnumerable() where user.Email == User.Identity.Name select user.Id; var placerecord = db.UserPlace; var userplace = from uplace in placerecord.AsEnumerable() where uplace.usersId == queryId.ToString() select uplace.placesId; var places = db.TrashPlaces; var field = from blah in places.AsEnumerable() where blah.Id == userplace.ToString() select blah.nameOfThePlace; TempData["username"] = User.Identity.Name; TempData["fieldname"] = field.ToString(); TempData["datename"] = DateTime.Now; List<TrashViewModel> json = (List<TrashViewModel>)TempData["jsonList"]; return View(json); }
도움과 또는 계단식 LINQ를 향한 최선의 방법 무엇을/조언 감사 드리겠습니다.
감사합니다.
'UserPlace','TrashPlaces' 등의 컨텍스트 엔티티에 액세스하면 IQueryable 컬렉션을 얻을 수 있습니다. 우리의 쿼리에서 IQueryable (메모리에없는 컬렉션이지만 SQL 쿼리로 변환되고 DBMS에 의해 처리됩니다)을 IEnumerable로 캐스팅합니다. IEnumerable은 메모리의 각 엔터티 결과를로드합니다. 문맥). 외부 부분은 LINQ-to-SQL보다는 LINQ-to-Object에서 작동합니다. 먼저 IQueryable로 실행 한 다음 결과를 메모리에 가져옵니다. 아래 답변은 따라야하는 것입니다. – gdyrrahitis