2011-04-12 2 views
1

엔티티 유형 모음으로 이루어진 WCF 데이터 서비스에서 복합 유형을 반환 할 수 있습니까? 당신이 정의하는 경우, 그것은 복잡한 유형이 있음을 의미 없기 때문에 이것이 가능하지WCF 데이터 서비스에서 복합 형식을 반환하는 방법?

" The exception message is 'One or more validation errors 
were detected during model  generation: System.Data.Edm.EdmEntityType: Name: 
Each type name in a schema must be unique. Type name 'Contract' was already 
defined." 
+0

이것을 시도하면 어떻게됩니까? –

+0

예외가 발생했습니다. "모델 생성 중에 하나 이상의 유효성 검사 오류가 발견되었습니다. System.Data.Edm.EdmEntityType : Name : 스키마의 각 형식 이름이 고유해야하며 형식 이름 'Contract'가 이미 있어야합니다. 한정된." – Attilah

+1

이렇게하면 복잡한 유형을 반환하는 것과 아무런 관련이없는 것 같습니다. 모델에 문제가 있습니다. –

답변

0

: 예를 들어

: 나는 위의 구성을 시도 할 때

//the complex type to return 
class Entities 
{ 
    ICollection<Contract> Contracts; 
    ... 

} 

//configuration 
public partial class MyContext: DbContext 
{ 
    public MyContext() 
     : base("name=DBEntities") 
    { 
    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.ComplexType<Entities>(); 
     modelBuilder.Entity<Contract>().HasKey(c=>c.Id); 
     ... 
    } 
    ... 
    } 

//the WCF Data Service 
public class PricingDataService : DataService<ObjectContext>, IDisposable 
{ 
    [WebGet] 
    public Entities GetEntities() 
    { 
     return new Entities(); 
    } 
    } 

, 나는 예외를 얻을 탐색 속성을 계약에 적용합니다. 이것은 전체 엔티티 프레임 워크에서 허용되지 않습니다. 이 오류는 아마도 Contract이 엔티티로 정의되었지만 complext 유형이이를 다른 것으로 매핑하려고 시도하는 것으로부터 비롯된 것으로 추측 할 수 있습니다.하지만 이는 단지 추측에 불과합니다.

+0

이 문제를 피하는 방법이 있습니까? – Attilah

+0

데이터 서비스에서 이것이 어떻게 작동하는지 잘 모르겠습니다. 사용자 정의 매핑되지 않은 유형을 사용할 수 있지만 데이터 서비스에서 어떻게 처리합니까? –

+0

wo! 이 쇼 스트 스토퍼입니다. – Attilah

0

게시 한 스 니펫은 나를 읽기가 어렵습니다. 그러나 나는 WCF 유형을 통해 전송했다고 말할 수 있습니다. 나는 보통 ICollection <>을 사용하여 내 목록을 선언하지 않고 목록 <>을 사용하는 경향이 있으며 클라이언트의 정보를받는 데 많은 문제가 없었습니다.

아마도 데이터 계약에서 클래스를 정의하는 방법에 문제가있을 수 있습니다.

+0

어떻게하는지 궁금합니다. 복잡한 유형에는 엔티티 유형 목록이 있습니까? – Attilah

+0

수정하십시오.나는 데이터 계약과 같은 것을 가지고있다 : public class SomeClass {private List mCustomers; public List 고객 {get {return mCustomers;} {mCustomers = value}}} 내 서비스에서 : public SomeClass GetSome() {...} 스 니펫을 게시하는 방법을 아직 모른다. 나는 나중에 무언가를 채찍질하려고 노력할 것이다. – Efren

+0

게시하십시오. 그게 내가 잘못하고있는 것을 알아내는 데 도움이되는 먼 길을 간다 ... – Attilah

0

컬렉션을 포함하는 복잡한 유형을 반환하는 것이 문제라고 생각하지 않습니다. this post을 참조하십시오.

여기에서 IQueryable을 반환하는 메서드를 추가 할 수 있으며 정상적으로 작동합니다. 부서에는 다른 컬렉션이 있습니다. 희망이 도움이됩니다.