0

假设我有一些接口,例如:

public interface IIconComponent
{
   // statements ...
}

然后我在我的类中实现这个接口,如下所示

public class IconComponent : IIconcomponent
{
   // implementing the interface statements ..
}

并在 mvc3 中创建一个表,如:

public class IconDBContext : DbContext
{
   public DbSet<IIconComponent> Icon {get; set;} //Is this statement possible 
}

那就是制作接口类型的对象集,用于在表中存储类 IconComponent 对象。如何在 MVC3 中做到这一点?

我是否必须为此实现一些模型绑定器?或者,还有其他方法吗?

感谢您,

4

3 回答 3

2

EF 不支持接口。DbSet必须用真正的实现来定义。一旦您将其更改为使用实现,您的操作很可能也会使用它,因为没有理由使用抽象。

于 2012-04-09T10:19:36.090 回答
0

如果你真的需要,你可以让你的实体框架类实现接口。使用 POCO 很简单,使用 edmx 您可以创建包含接口派生的部分类。然而,正如拉迪斯拉夫所说,类似的事情DbSet<IIconComponent>是不可能的。

我可以想象你想要使用它的场景,例如处理只接受特定接口但你想用你的 EF 类填充的其他应用程序组件。(前几天,我使用旧版 UI 层正是这样做的)。

于 2012-04-09T20:46:31.030 回答
0

你为什么要使用实体框架是你在它之上创建抽象层,因为你根本没有使用实体框架,因为实体框架不能使用接口。

于 2012-04-09T10:20:34.730 回答