2011-11-10 1 views
0

Entity Framework를 사용하는 nop commerce 전자 상거래 오픈 소스 1.9를 사용하고 있습니다.저장 프로 시저 함수에서 가져온 사용자 지정 속성을 Entity Framework에 매핑하십시오.

그들은 모든 제품을로드하고

지금 내가 그 SP의 넣어 저장 프로 시저 및 아웃이 languages 하나 더 열을 자신의 것으로 변경 sp_ProductLoadAllPaged 기능이 저장 프로 시저를지도 한 저장 프로 시저가 있습니다.

또한 product.cs 클래스 파일에 languages 속성을 선언합니다.

그러나 이제는 빠른 시계 languages 열을 사용하는 동안 모든 제품에 대해 null입니다.

.edmx 파일을 모델 브라우저의 데이터베이스에서 업데이트했습니다.

지금 내가 언어의 일부 매핑 속성을 놓치고 있는지 확인하는 클래스와 저장 프로 시저

어떻게 제품 수준의 언어 속성에 저장 프로 시저의이 새 열을 매핑하는 방법을 가르쳐주십시오. 저장 프로 시저 최종 선택 문을 확인할 수있는 것처럼 내가 그 제품의 언어를 얻기 위해 변경 한 경우

자세한 내용

mapping image

의 아래 이미지 참조하시기 바랍니다

SELECT 
     p.ProductId, 
     p.Name, 
     p.ShortDescription, 
     p.FullDescription, 
     p.AdminComment, 
     p.TemplateId, 
     p.ShowOnHomePage, 
     p.MetaKeywords, 
     p.MetaDescription, 
     p.MetaTitle, 
     p.SEName, 
     p.AllowCustomerReviews, 
     p.AllowCustomerRatings, 
     p.RatingSum, 
     p.TotalRatingVotes, 
     p.Published, 
     p.Deleted, 
     p.CreatedOn, 
     p.UpdatedOn, 
     p.AmazonLink, 
     p.ProductCode, 
     p.CategoryText, 
     STUFF((Select ','+ [Name] from Nop_Language where Nop_Language.LanguageId in 
    (Select Nop_ProductLocalized.LanguageID 
    from 
     Nop_ProductLocalized 
    where 
     ProductID=p.ProductId 
    ) for xml path('')),1,1,'') as 'languages' 
    FROM 
     #PageIndex [pi] 
     INNER JOIN Nop_Product p with (NOLOCK) on p.ProductID = [pi].ProductID 
    WHERE 
     [pi].IndexID > @PageLowerBound AND 
     [pi].IndexID < @PageUpperBound 
    ORDER BY 
     IndexID 
+0

@ marc_s 고마워요. – rahularyansharma

답변

0

그것을 클래스를 수정하기에 충분하지 않습니다. 새 속성은 EDMX에 알려 져야하며 EDMX의 템플릿은 클래스의 속성을 생성해야합니다.

따라서 sp_ProductLoadAllPaged이 엔티티 인 경우 속성을 수동으로 EDMX에 추가하고 매핑해야합니다. 복합 유형 인 경우 함수 가져 오기 마법사에서 복합 유형을 업데이트해야합니다. 수동으로 변경하기 전에 어딘가에 현재 버전을 저장하여 XML로 열면 EDMX에서 직접 두 가지 접근법을 모두 수행 할 수도 있습니다.

+0

오른쪽 클릭으로 편집 기능을 선택하면 편집 할 수 없습니다. 복잡한 유형은 사용할 수 없습니다. – rahularyansharma

+0

.NET 4 또는 3.5입니까? –

+0

@Mrnka is .net 3.5 sir – rahularyansharma