我创建了一个视图,并通过“从数据库更新模型”将其添加到我的模型中。模型验证,但是一旦我将新的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中的视图设置其他内容?
答案 0 :(得分:2)
您的界面定义
DbSet<CustomerWinningsView> CustomerWinningsView { get; set; }
然而你的DbContext
实施
public DbSet<CustomerWinningsView> CustomerWinningsViews { get; set; }
更改接口或实现方法以匹配彼此。 (CustomerWinningsView
或CustomerWinningsViews
)。如果你说两者都是代码生成的,那么它可能是复数机制中的一个错误。