2012-07-18 4 views
0

내가 LINQ지정된 형식 멤버 인 ""은 LINQ to Entities에서 지원되지 않습니다. 지정된 타입의 멤버 'IDEN'은 엔티티에 LINQ에서 지원되지 않습니다 : 나는 다음과 같은 오류가이 쿼리를 실행할 때

var operations = (from c in dCAPPEntities.CIC_OPERAZIONI 
           where c.CD_CIC_PRODUZIONE == 15835 && !(from s in dCAPPEntities.CIC_SEQUENCE where s.CD_CIC_PRODUZIONE==15835 select s.CD_CIC_OPERAZIONE).Contains(c.CD_CIC_OPERAZIONI) select new { c }).GroupBy(i=>i.c.CD_CIC_OPERAZIONI, i=> new Alternative1{ State=0, Iden=i.c.Iden}); 

에 문제가 있어요. 이니셜 라이저, 엔티티 구성원 및 엔티티 탐색 특성 만 지원됩니다.

Iden = ""이 쿼리에서 작동하면 오류가 발생하는 이유를 알 수 없습니다.

나는 또한 내가 사용하는 몇 가지 클래스의 코드를 추가합니다 내가 문제를 이해하는 데 유용 할 수 있다고 생각 테이블

public partial class CIC_OPERAZIONI : IAlternative 
{ 
public string Iden 
    { 
     get 
     { 
      return AFCDOPER + "\r" + AFDSOPER; 
     } 
    } 

    private int _state = 0; 
    public int State 
    { 
     get { return _state; } 
     set 
     { 
      _state = value; 
     } 
    } 
} 

마지막 클래스를 확장

public interface IAlternative 
{ 
    string Iden { get; } 

    int State { get; set; } 

} 

부분 클래스를

public class Alternative1 : INotifyPropertyChanged, IAlternative 
{ 
    public event PropertyChangedEventHandler PropertyChanged; 

    #region IAlternative Members 

    public string Iden { get; set; } 


    public int State { get; set; } 

답변

1

cCIC_OPERAZIONI입니다. CIC_OPERAZIONI.Iden은 엔티티 멤버 또는 탐색 속성이 아니며 다른 속성에 종속 된 값을 가진 계산 된 속성입니다. EF는이를 지원하지 않습니다. 쿼리가 실제로 CIC_OPERAZIONI 개체를 생성하지 않으므로 CIC_OPERAZIONI 멤버 함수 또는 속성을 호출 할 방법이 없습니다.

[...].GroupBy(
    i=> i.c.CD_CIC_OPERAZIONI, 
    i=> new Alternative1 
     { 
      State = 0, 
      Iden = i.c.AFCDOPER + "\r" + i.c.AFDSOPER 
     }) 

를 작동하지 않는 경우 AFCDOPER 또는 AFDSOPER 어느 엔티티 구성원이 아닌 아마 그것 때문에, 그리고 : 다른 속성의 정의에 따라, 또는 인라인을 확장하는 경우 작동하지 않을 수 있습니다 당신은 다른 속성들과 같은 것을 할 필요가 있습니다.

+0

이 경우에는 다른 오류가 발생합니다.이 유형은 캐스팅에 대한 것입니다. 'System.Decimal'형식을 'System.Object'형식으로 변환 할 수 없습니다. 엔터티에 대한 LINQ는 엔터티 데이터 모델 기본 형식을 캐스팅하는 기능 만 지원합니다. 하지만 LINQ 표현식에서 ToString을 사용할 수는 없습니다. – andrea

+0

그리고 문자열 속성 만 남기면 쿼리가 제대로 실행되지만 Iden은 항상 NULL로 설정됩니다. – andrea

+0

질문에 10 진수 속성에 대해 아무 것도 표시되지 않습니다. 그것에 관한 속성은 무엇입니까? C#에서'AFCDOPER + "+ AFDSOPER가 작동하려면 AFCDOPER와 AFDSOPER가 문자열 속성이어야합니다. 맞습니까? – hvd

관련 문제