在实体框架中没有按预期工作的接口生成了部分类

本文关键字:接口 分类 工作 框架 实体 | 更新日期: 2023-09-27 18:08:28

我在Entity Framework 4.0, . net 4.0中工作的项目遇到了问题。

我已经走了模型的第一条路线。

我一直在创建我的模型,只是通过右键单击我的模型设计器,然后单击添加代码生成项生成部分类…

然后我创建了一些部分类,像这样:

EDIT:这些都与生成的类在同一个命名空间中。

public partial class Foo : IFoo{
}
public partial class Bar : IBar{
}
public partial class SomethingElse : ISomethingElse{
}

我已经查看了生成的实体框架代码和Foo具有属性BarSomethingElse,它们是实体框架生成的类型。

IFoo的接口是这样设置的:
public interface IFoo{
  IBar Bar {get; set;}
  ISomethingElse SomethingElse {get; set;}
}

EDIT:接口位于与实体框架类不同的类库中。

我的问题是编译器抱怨Foo没有实现接口IFoo。

我真的不知道发生了什么事。

如果有人能在这一点上给出一些启示,那就太好了。我总觉得我错过了什么。

在实体框架中没有按预期工作的接口生成了部分类

据我所知,问题是类Foo具有返回类型Bar的属性,但您要求实现具有返回类型IBar的属性。您可以尝试通过显式实现来解决这个问题:

public partial class Foo : IFoo
{
     IBar IFoo.Bar 
     {
        get { return ((Foo)this).Bar }
        set { ((Foo)this.Bar) = (Bar)value; }
     }    
}