2012-04-02 7 views
2

마이닝 구조를 2008 서버에서 2012 서버로 마이그레이션했습니다. 나는 2012 서버에서 DMX 쿼리 (SQL Server 2008에서 잘 작동되는) 내 CLR의 UDF를하려고하면이 오류가 무엇입니까 :Context.CurrentMiningModel이 UDF에서 null을 반환합니다.

Exception has been thrown by the target of an invocation. Object reference not set to an instance of an object.

내 원래 목표는 GetNodeDescription(...) 방법의 실행을 얻을 수 있었다. 문제를 디버깅하는 동안, 나는 내 SQL 서버에 실패하는이 UDF에 문제를 격리 수 2012

[SafeToPrepare(true)] 
public static string test() 
{ 
    return Context.CurrentMiningModel.Name; 
} 

내 생각 엔 다음과 같은 코드가

[SafeToPrepare(true)] 
public static string testUser() 
{ 
return Context.CurrentConnection.User.Name; 
} 

어떤 생각이 잘 작동하기 때문에 CurrentMiningModel가 null이다 어떻게 해결할 수 있을까요? 누가 이것을 재현 할 수 있습니까?

감사합니다.

UPDATE : 마이크로 소프트 A 접점은 "메타 - 리팩토링"(이것이 의미하는 무엇이든 ...)으로 인해 원하는대로이 동작을 확인했다. 그러나 website은 여전히 ​​적절하게 업데이트 될 예정입니다.

답변

0

이 궁극적 인 해답이 아니라 그것을 얻을 수있는 해결 방법입니다 마이크로 소프트의 GetNodeDescription 작업 (명시 적으로 마이닝 모델 제공함으로써) :

[SafeToPrepare(true)] 
public static string GetNodeDescription(string MiningModel, string nodeUniqueName) 
{ 
    if (Context.ExecuteForPrepare) 
    { 
    return string.Empty; 
    } 
    return Context.MiningModels[MiningModel].GetNodeFromUniqueName(nodeUniqueName).Descript‌​ion; 
}