我有以下代码:C# - 不能投实体接口实体
public class CoursesController : ApiController
{
private ITanulmanyokEntities _entities;
public CoursesController()
: this(new TanulmanyokEntities()) // ERROR HERE
{
}
public CoursesController(ITanulmanyokEntities entities)
{
if (entities == null)
throw new ArgumentNullException("entities");
_entities = entities;
}
}
在这里,我做了一个接口:
public interface ITanulmanyokEntities : IDisposable
{
Int32 SaveChanges();
DbSet<Application> Applications { get; set; }
DbSet<Course> Courses { get; set; }
DbSet<EducationSubject> EducationSubjects { get; set; }
DbSet<EducationUser> EducationUsers { get; set; }
DbSet<Program> Programs { get; set; }
}
这应该是从生成的实体的接口数据库:
public partial class TanulmanyokEntities : DbContext
{
public TanulmanyokEntities()
: base("name=TanulmanyokEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Application> Applications { get; set; }
public virtual DbSet<Course> Courses { get; set; }
public virtual DbSet<EducationSubject> EducationSubjects { get; set; }
public virtual DbSet<EducationUser> EducationUsers { get; set; }
public virtual DbSet<Program> Programs { get; set; }
}
但是,我似乎无法将一个转换成另一个。请参阅评论行。问题是,我的编译器不能转换接口/真实的东西。我想我实现了所有必须实现的东西(我也遵循一些有用的示例代码)。我错过了什么?
您无法将TanulmanyokEntities转换为ITanulmanyokEntities,因为它没有实现接口。这是什么接口? – anserk
这是'TanulmanyokEntities'的界面。老师的示例代码完全相同,并且适用于他...我现在正在运行该代码。 –
你可以发布示例链接吗? – anserk