2010-12-02 4 views
2

아마도 매우 간단한 질문이지만 IronPython을 처음 사용했습니다. IronPython을 사용하여 전달하는 엔티티를 크롤링하고 싶습니다.하지만 확장 메서드를 사용하려고하면 예상대로 일종의 불어납니다. IronPython에서 POCO를 트래버스하는 방법은 무엇입니까? 'EntityCollection은 [MyEntity]'개체가 어떤 속성을 사전에 'FirstOrDefault'IronPython 및 Entity Framework

감사가 없습니다 :

delegate bool EvaluateRule(MyEntity entity); 
//Keep in mind this is just to test, no actual value provided 
string expression = @"entity.Flags.FirstOrDefault() == null"; 
MyEntity entity = new MyEntity(); 
PythonEngine engine = new PythonEngine(); 
EvaluateRule rule = engine.CreateLambda<EvaluateRule>(expression); 
bool result = rule.Invoke(entity); 

나는 다음과 같은 얻을!

+0

"는 예상의 일종으로, 불면"? 이것은 무엇을 의미 하는가? 1) 오류를 나타내는 가장 작은 코드 조각을 제공하십시오. 2) 오류를 제공하십시오. 우리의 ESP가 그다지 좋은 것은 아닙니다. 우리는 당신이 한 일이나 "분다"는 것을 짐작할 수 없습니다. –

+0

죄송합니다. @ S.Lott은 내 구현이 마음에 들지 않으면 서 아이디어를 얻기 위해 모호한 것으로 생각하고있었습니다. – Benny

답변

3

당신은 일반 정적 메소드로 확장 메서드를 호출 할 수

string expression = @"Enumerable.FirstOrDefault(entity.Flags) == null"; 
+0

이렇게하면 "이름"열거 형이 정의되지 않음 – Benny

+0

[It 's System.Linq] (http://msdn.microsoft.com/en-us/library/system.linq.enumerable.aspx). 그것을 참고해야 할 수도 있습니다. –

+0

죄송합니다. IronPython에 완전히 익숙하지 않습니다. 위 예제에서 IP가 사용할 네임 스페이스를 어떻게 참조합니까? – Benny