实体框架不实现View的接口成员

时间:2014-01-28 14:33:17

标签: c# entity-framework

我创建了一个视图,并通过“从数据库更新模型”将其添加到我的模型中。模型验证,但是一旦我将新的View添加到Interface中,它就会在编译时抛出错误:

  

错误4'Entities.Model.TestEntities'未实现接口   成员'Entities.Interfaces.ITestEntities.CustomerWinningsView'

这非常有趣,因为当我添加普通表成员时,它没有任何问题。

public interface ITestEntities
{
DbSet<Browser> Browsers { get; set; } - normal table works
DbSet<CustomerWinningsView> CustomerWinningsView { get; set; } - view throws error on compile..
}

上下文:

public partial class TestEntities : DbContext, ITestEntities
{
    public TestEntities()
        : base("name=TestEntities")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }

    public DbSet<Browser> Browsers { get; set; }
    public DbSet<CustomerWinningsView> CustomerWinningsViews { get; set; }
}

我是否必须为EF中的视图设置其他内容?

1 个答案:

答案 0 :(得分:2)

您的界面定义

DbSet<CustomerWinningsView> CustomerWinningsView { get; set; } 

然而你的DbContext实施

public DbSet<CustomerWinningsView> CustomerWinningsViews { get; set; }

更改接口或实现方法以匹配彼此。 (CustomerWinningsViewCustomerWinningsViews)。如果你说两者都是代码生成的,那么它可能是复数机制中的一个错误。