0

ForeignKeyAttributeはインターフェイスで機能しませんか?

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

属性が機能していないようです。

4

1 に答える 1

0

2番目の例のようにClientクラスを宣言すると、CompanyForeignKeyMapperクラスから継承されなくなるため、ClientIdフィールドはありません。CompanyForeignKeyMapperから継承し、ICompanyForeingKeyMapperインターフェイスを実装する場合は、次のように宣言します。

public class Client: CompanyForeignKeyMapper, ICompanyForeingKeyMapper

または、ClientIdをインターフェイスのフィールドとして定義することもできます。その場合、Clientクラスはそれを実装し、独自のForeignKeyAttributeを追加できます。

public interface ICompanyForeignKeyMapper
{
    int ClientId;
}


public class Client: ICompanyForeignKeyMapper
{
    [ForeignKeyAttribute("Company")]
    int ClientId;
}
于 2012-11-18T19:00:45.230 に答える