Entity framework 4 如何实现ForeignKey属性到接口

Entity framework 4 如何实现ForeignKey属性到接口,entity-framework-4,attributes,Entity Framework 4,Attributes,ForeignKeyAttribute在接口上不工作 public class Client: CompanyForeignKeyMapper { public int Client; } public class CompanyForeignKeyMapper { [ForeignKeyAttribute("Company")] int ClientId; } 这段代码运行良好。但是当我将CompanyForeignKeyMapper类更改为接口时 publi

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

该属性似乎不起作用。

在第二个示例中声明客户端类时,它不再从CompanyForeignKeyMapper类继承,因此它将没有ClientId字段。如果希望它从CompanyForeignKeyMapper继承并实现ICompanyForeingKeyMapper接口,请如下声明:

public class Client: CompanyForeignKeyMapper, ICompanyForeingKeyMapper
或者,您可以将ClientId定义为接口的字段,在这种情况下,客户端类必须实现它,并可以向其添加自己的ForeignKeyAttribute:

public interface ICompanyForeignKeyMapper
{
    int ClientId;
}


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

我打算将CompanyForeignKeyMapper类转换为Interface,因此基本上我将该功能从类复制到了ICompanyForeignKeyMapper,因为其目的只是实现功能,而不是继承。第二个答案不适用于我,因为客户机类实际上是自动生成的,所以我希望[ForeignKeyAttribute]将其传输到接口并将客户机拆分为部分类,但仍然感谢您的输入;)