문제

좋아, 엔티티의 기본 키가 '자동 생성 된 값'으로 설정된 경우 기본 키를 쿼리하려고 할 때만이 문제 만 확인했지만, 삽입 할 수있는 방법은 무엇입니까? 이것이 멍청한 linq2sql이라면 죄송하지만 방금 작업을 시작했습니다.

이 옵션을 끄고 LINQ에서 SQL을 사용하는 방법은 어떻게 될까요? 나는 할당해야 할 pk를 얻기 위해 매번 Qry를 que하는 것을 싫어합니다 ...

나는 누군가가 나를 도울 수 있기를 바랍니다. 나는 내 프로젝트 중 하나에서 LINQ에서 SQL을 사용할 수 없습니다. 실제로 무엇을 해야할지 확실하지 않습니다 ... 여기에 예를 들어,이 줄은 stackoverflow 예외를 던집니다.

MyDataContext dc = new MyDataContext(ConnStr);
var obj = dc.MyDataTable.AsQueryable().SingleOrDefault(a => a.pkID == 4);

- 두 번째 줄은 stackoverflow 예외를 던집니다.

그녀는 동일한 DataContext를 사용하는 또 다른 예제입니다

var o = dc.MyDataTable.Take(1); <-- works fine
var abc = o.ToArray();  <-- unable to evaluate, debugger stops

내가 시도 할 수있는 아이디어가 있습니까? 같은 솔루션의 다른 프로젝트에서 LINQ에서 SQL을 사용하는 것 같습니다.

- 업데이트-이 특정 엔티티 'MyDatatable'에 PK 세트가 '자동 생성 값'으로 설정되어 있음을 언급하는 것을 잊었습니다.

도움이 되었습니까?

해결책

PKID는 어떻게 구현됩니까? 어떤 식 으로든 재귀 적 가능성이 있습니까?

다른 팁

그만큼 Take(1) 실제로는 아무것도 실행하지 않기 때문에 작업은 나를 놀라게하지 않습니다 (데이터가 반복 될 때까지 연기됩니다).

그것은 흥미로운 문제입니다 - 적어도 SingleOrDefault(x=>x.ID == id) 실제로 다른 처리 내부 - 이것은 이것을 기본 키 조회로 인식하고 Identity Manager를 확인합니다. 첫 번째.

편집하다 벽에서 벗어나면서 시도하십시오 .Where(x=>x.ID == id).SingleOrDefault() - 버그 (이전 링크)에 따라 4.0 선박까지 ID 조회 트릭을 사용하지 않습니다.

나는 궁금한 점으로 시작할 것입니다.

  • ID getter/setter에 이상한 것이 있습니까 (코드를 추가 했습니까?)
    • 당신은 했어요 아무것 이 유형의 부분 클래스에서?
  • 상속 체인의 일부입니까?
    • 그렇다면 부모 유형에 대한 부분 클래스로 원숭이를 썼습니까?
  • 콜 스택 창에 폭발 할 때 아무것도 얻습니까?

그것은 LINQ 4.0에서 수정 된 버그였습니다

http://damieng.com/blog/2009/06/01/linq-to-sql-changes-in-net-40

쿼리 안정성은 이제 자체 참조를 감지하고 스택 오버 플로우를 일으키지 않습니다.

.NET 3.5에서 문제를 해결하려면 : '자동 생성 값'= true를 사용할 때 '지연'을 False로 설정해야합니다. 그렇지 않으면 재귀 오류가 발생합니다.

당신의 데이터 가능은 너무 큽니다!

편집하다. MyDatatable은 실제로 데이터가 가능합니까? 아니면 실제로 LINQ에서 SQL 테이블 <...>입니까? 그렇다면 asqueryable ()을 제거하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top