簡體   English   中英

如何在Ntier MVC中使用動態模型類傳遞參數

[英]how to Pass parameter with dynamic model class in Ntier MVC c#

首先,

我的控制器代碼是;

public ActionResult Menuler_Delete(int id)
        {
           Menuler val = general_service.getMenu(id);
            general_service.Delete(val);

            return RedirectToAction("Menuler", "Admin");
         }

我的一般服務代碼是;

public Menuler getMenu(int id)
        {
            MenulerService mservice = new MenulerService();

            return mservice.getMenu(id);

        }
        public void Delete( T model ) 
        {
            DbIslemler<T> islem = new DbIslemler<T>();
            islem.Delete(model);
        }

menulerservice代碼是;

public class MenulerService
    {
        DbIslemler<Menuler> menuler_service = new DbIslemler<Menuler>();

        public Menuler getMenu( int id)
        {
           return menuler_service.Find(id);
        }

    }

我的DBIslemler代碼是;

public class DbIslemler<T> : IDbIslemler<T> where T : class
    {
 public void Delete(T model)
        {
            _database.Set<T>().Remove(model);
            _database.SaveChanges();
        }

        public void Delete(object id)
        {
            T val = _database.Set<T>().Find(id);
            _database.Set<T>().Remove(val);
            _database.SaveChanges();
        }

public T Find(object id)
        {
           return _database.Set<T>().Find(id);

        }
}

namespace NTierMvc.DataAccess
{
    public class DataBase : DbContext
    {

        public DbSet<Popup> Popups { get; set; }

        public DbSet<New> News{ get; set; }

        public DbSet<Menuler> Menulers { get; set; }
    }

}

現在,我想將void Delete(T model)值控制器傳遞給常規服務。 但是我的模型類(即T)是可變的。 有時是無效刪除( 菜單模型),有時是無效刪除( 彈出窗口模型),有時是無效刪除( 新聞模型)

我怎樣才能做到這一點? 謝謝。

用您的話來說,您希望能夠將任何實體傳遞給generalservice.Delete() 您可以通過使Delete 方法通用,而不必使整個generalservice 通用:

public class GeneralService
{
    public void Delete<T>( T model ) 
    {
        DbIslemler<T> islem = new DbIslemler<T>();
        islem.Delete(model);
    }
}

我要說的是,這看起來並不好。 您已經有了MenuService ,那么為什么不使用它來刪除菜單對象呢? GeneralService看起來像控制器和服務之間不必要的層。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM