假设我有一些界面:
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中执行此操作?
我是否必须为此实现一些模型绑定器?或者,还有其他一些方法吗?
感谢你,
答案 0 :(得分:2)
EF不支持接口。必须使用实际实现来定义DbSet
。一旦你改变它以使用实现,你的动作很可能也会使用它,因为没有理由使用抽象。
答案 1 :(得分:0)
为什么你要使用实体框架是你在它上面创建抽象层,因为你根本就没有使用实体框架,因为实体框架不能使用接口。
答案 2 :(得分:0)
如果确实需要,可以让实体框架类实现接口。使用POCO,它很简单,使用edmx,您可以创建包含接口派生的部分类。但是,正如Ladislav所说,DbSet<IIconComponent>
之类的东西是不可能的。
我可以想象你想要使用它的场景,例如处理只接受特定接口的其他应用程序组件,但是要填充EF类。 (前几天,我使用传统的UI图层完成了这一点。)