我会尝试解释我想要什么,但这会很困难。) 所以我有实体:
public class User
{
[Key]
public Int32 Id { get; set; }
public String Name { get; set; }
public List<Article> Article { get; set; }
public String Surname { get; set; }
}
我有实现DbContext
及其接口:
public interface IMyContext
{
DbSet<T> Set<T>() where T : class;
}
public class MyContext : DbContext, IMyContext
{
public DbSet<User> Users { get; set; }
protected override void Dispose(bool disposing)
{
this.SaveChanges();
base.Dispose(disposing);
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//modelBuilder.Entity<User>().HasMany(e => e.Article).WithRequired(e => e.User).WillCascadeOnDelete(true);
base.OnModelCreating(modelBuilder);
}
}
我有这个实体存储库和它的界面:
public interface IUserRepository
{
void Add(User entity);
void Delete(User entity);
User GetById(Int32 id);
List<User> GetAll();
}
public class UserRepository : RepositoryBase<User>, IUserRepository
{
[Inject]
public UserRepository(IMyContext context):base(context)
{
}
}
另外我正在使用 ninject 来注入依赖项。在使用中它看起来像这样(不要告诉我我不应该直接在我的pressentation层使用存储库,我应该通过BussinesLogic
层使用它。这只是一个例子):
var repository = DI.Resolve<IUserRepository>();
repository.Add(new User(){Name="Vasja1", Id = 1, Surname = "Petrov"});
让我们想象一下,我们的表示层中有 Asp.NET 应用程序。我的应用程序可以在很多地方修改实体。问题我应该在哪里使用SaveChanges()
?我把它放在context.Dispose()
方法中,但也必须调用 dispose。谢谢回答。如果您能举出例子,将非常感激。