我的DbContext实体框架 - SaveChanges()没有出现在我的智能感知
希望我已经正确设置了一些东西,并且我在.net core中实现了它,但是我的当前环境是.net 4.5x。 EF版本6.1.x.我的DbContext实体框架 - SaveChanges()没有出现在我的智能感知
我的问题是,我想创建一个Add方法,它将类DbContext的Add
方法。但是,当我尝试从DbContext中调用SaveChanges()
时,intellisense告诉我它不存在。当我在.net内核中使用EF时,这种模式起作用,并且在线引用告诉我它也应该如何工作?
此外,我遇到另一个*后提及如何System.Data.Entity
使用声明需要添加 - 这是包括但仍然无法正常工作。
代码:
public class ARepository : DbContext
{
public RegRepCommodityRepository()
: base("WhateverConnectionString")
{}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer<ARepository>(null);
modelBuilder.Entity<SomeClass>().ToTable("dbo.SomeClass");
base.OnModelCreating(modelBuilder);
}
private DbSet<SomeClass> MyContext { get; set; }
public IEnumerable<SomeClass> SelectEverything()
{
return MyContext.ToList();
}
public void Add(MyClass addThisClass)
{
MyContext.Add(addThisClass);
MyContext.SaveChanges(); // Intellisense tells me that SaveChanges does not exists
}
}
*编辑*
只需调用this.SaveChanges()
。
SaveChanges()
不是静态方法,你不能在没有实例化类的对象的情况下调用它,你可以调用它。
this.SaveChanges();
尝试dis instantobj.SaveChanges();
这可以添加评论。请解释你的答案。 – Ironic
如果不实例化DbContext的对象,则不能调用它。首先,您创建并调用它。 –
SaveChanges()
是DbContext
而不是DbSet
的方法。 DbSet
代表一张表,DbContext
可能代表您的数据库或其中的一部分。它似乎也是你试图在你的dbContext
类中实施存储库模式,它是不正确的,阅读它的更多细节Click Here
是的。被卡住了这么久,我觉得有点愚蠢。 – mche