C# 如何在接口中实现Delete方法并在控制器MVC4中调用
嗨,我想在我的数据源中实现我的void Delete方法。我创建了Save()方法,但仍在努力使用Delete()。我一直在找,但还是不知道怎么做。任何帮助 界面:C# 如何在接口中实现Delete方法并在控制器MVC4中调用,c#,asp.net-mvc-4,entity-framework-5,C#,Asp.net Mvc 4,Entity Framework 5,嗨,我想在我的数据源中实现我的void Delete方法。我创建了Save()方法,但仍在努力使用Delete()。我一直在找,但还是不知道怎么做。任何帮助 界面: public interface IDepartmentDataSource { IQueryable<User> Users { get; } IQueryable<Department> Departments { get;} IQueryable<Entry> E
public interface IDepartmentDataSource
{
IQueryable<User> Users { get; }
IQueryable<Department> Departments { get;}
IQueryable<Entry> Entries { get; }
void Delete();
void Save();
}
公共接口IDepartmentDataSource
{
IQueryable用户{get;}
IQueryable部门{get;}
IQueryable条目{get;}
作废删除();
作废保存();
}
数据源:
public class DepartmentDb : DbContext, IDepartmentDataSource
{
public DepartmentDb() : base("DefaultConnection")
{
}
public DbSet<User> Users { get; set; }
public DbSet<Department> Departments { get; set; }
public DbSet<Entry> Entries { get; set; }
void IDepartmentDataSource.Save()
{
SaveChanges();
}
void IDepartmentDataSource.Delete()
{
// What is the logic here?
}
IQueryable<Entry> IDepartmentDataSource.Entries
{
get { return Entries; }
}
IQueryable<Department> IDepartmentDataSource.Departments
{
get { return Departments; }
}
IQueryable<User> IDepartmentDataSource.Users
{
get { return Users; }
}
}
公共类DepartmentDb:DbContext,IDepartmentDataSource
{
公共部门数据库():基本(“默认连接”)
{
}
公共数据库集用户{get;set;}
公共数据库集部门{get;set;}
公共数据库集项{get;set;}
void IDepartmentDataSource.Save()
{
保存更改();
}
void IDepartmentDataSource.Delete()
{
//这里的逻辑是什么?
}
IQueryable IDepartmentDataSource.Entries
{
获取{返回条目;}
}
IQueryable iDPartmentDataSource.Departments
{
获取{返回部门;}
}
IQueryable iDPartmentDataSource.Users
{
获取{返回用户;}
}
}
我想你需要的是:
public void IDepartmentDataSource.DeleteDepartment(int id)
{
Department itemToDelete = this.GetDepartmentById(id);
if (itemToDelete != null)
{
this.Departments.Remove(itemToDelete);
}
}
(有关GetDepartmentById方法,请参见…我找到了一个解决方案。我遇到的问题是存储库模式。现在,我的代码如下所示:
public class DepartmentDb : DbContext
{
public DepartmentDb() : base("DefaultConnection")
{
}
public DbSet<User> Users { get; set; }
public DbSet<Department> Departments { get; set; }
public DbSet<Entry> Entries { get; set; }
}
// your repository
public class DepartmentRepository: IDisposable
{
protected bool isDisposed = false;
private DepartmentDb Context { get; set; }
// read (public)
public IQueryable<user> Users { get { return Context.Users; } }
public IQueryable<department> Departments { get { return Context.Departments; } }
public IQueryable<entry> Entries { get { return Context.Entries; } }
public DepartmentRepository()
{
Context = new DepartmentDb();
}
public int Insert(User item)
{
Context.Users.Add(item);
return Context.SaveChanges();
}
public int Update(User item)
{
Context.Entry<user>(item).State = EntityState.Modified;
return Context.SaveChanges();
}
public int Delete(User item)
{
Context.Users.Remove(item);
return Context.SaveChanges();
}
protected virtual void Dispose(bool disposing)
{
if (isDisposed)
return;
if (disposing)
{
if (this.Context != null)
{
this.Context.Dispose();
this.Context = null;
}
}
isDisposed = true;
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}
公共类部门db:DbContext
{
公共部门数据库():基本(“默认连接”)
{
}
公共数据库集用户{get;set;}
公共数据库集部门{get;set;}
公共数据库集项{get;set;}
}
//您的存储库
公共类DepartmentRepository:IDisposable
{
受保护的bool isDisposed=假;
私有部门数据库上下文{get;set;}
//阅读(公开)
公共IQueryable用户{get{return Context.Users;}}
公共IQueryable部门{get{return Context.Departments;}}
公共IQueryable条目{get{return Context.Entries;}}
公共部门资源库()
{
上下文=新部门数据库();
}
公共整数插入(用户项)
{
Context.Users.Add(项);
返回Context.SaveChanges();
}
公共整数更新(用户项)
{
Context.Entry(item).State=EntityState.Modified;
返回Context.SaveChanges();
}
公共整数删除(用户项)
{
Context.Users.Remove(项);
返回Context.SaveChanges();
}
受保护的虚拟void Dispose(bool disposing)
{
如果(isDisposed)
返回;
如果(处置)
{
如果(this.Context!=null)
{
this.Context.Dispose();
this.Context=null;
}
}
isDisposed=true;
}
公共空间处置()
{
处置(真实);
总干事(本);
}
}