2012-11-15 2 views
0

ForeignKeyAttribute가 Interface에서 작동하지 않습니까?ForeignKey 속성을 인터페이스에 구현하는 방법

public class Client: CompanyForeignKeyMapper 
{ 
    public int Client; 
} 

public class CompanyForeignKeyMapper 
{ 
    [ForeignKeyAttribute("Company")] 
    int ClientId; 
} 

이 코드는 정상적으로 작동합니다. 하지만 클래스 CompanyForeignKeyMapper를 인터페이스로 변경하면

public interface ICompanyForeignKeyMapper 


public class Client: ICompanyForeingKeyMapper --> changed to interface 

속성이 작동하지 않는 것 같습니다.

답변

0

두 번째 예제와 같이 Client 클래스를 선언하면 더 이상 CompanyForeignKeyMapper 클래스에서 상속되지 않으므로 ClientId 필드가 없습니다.

public class Client: CompanyForeignKeyMapper, ICompanyForeingKeyMapper 

다른 방법으로, 인터페이스에 대한 필드로 된 ClientID를 정의 할 수있는 경우 클라이언트 클래스를 구현해야합니다 당신은 CompanyForeignKeyMapper에서 상속는 ICompanyForeingKeyMapper 인터페이스를 구현하기 위해, 다음과 같이 선언하려면 그것에 자신의 ForeignKeyAttribute을 추가 할 수 있습니다

public interface ICompanyForeignKeyMapper 
{ 
    int ClientId; 
} 


public class Client: ICompanyForeignKeyMapper 
{ 
    [ForeignKeyAttribute("Company")] 
    int ClientId; 
} 
+0

내가 목적은 단지 상속하지 않는 기능을 구현하는 것입니다 bacause 그래서 기본적으로 내가 ICompanyForeignKeyMapper에 클래스에서 기능을 복사 인터페이스에 클래스 CompanyForeignKeyMapper 변환하도록. 두 번째 대답은 클라이언트 클래스가 실제로 자동 생성되기 때문에 [ForeignKeyAttribute]를 인터페이스로 전송하고 클라이언트를 부분 클래스로 분할하지만 여전히 입력 해 주셔서 감사합니다.) –

관련 문제