1

我想将Dbset 对象传递给我的方法。

这是我的方法:

public static class MyClass
    {
       public static Floor ReturnObject(this DbSet<Floor> floor, int Id)
        {
           var context = floor.passContext() as MyDBContext;
           var data = context.floors.Where(a =>a.Id == Id).FirstOrDefault();
           return ad;
        }
     }

   public class MyDBContext: DbContext
    {
          public DbSet<Floor> floors { get; set; }
    }

public static DbContext passContext<TEntity>(this DbSet<TEntity> dbSet)
            where TEntity : class
        {
                 //code....
        }

现在我想使用我的静态类 MyClass的方法ReturnObject

我想在我的控制器中使用ReturnObject方法。

我知道我可以在我的控制器中将它声明为这样的私有成员:

这是我的控制器:

public class MyController
{
       private DbSet<Floor> floor;//but is this a good way???
         public ActionResult Index(int Id)
            {
              var data=MyClass.ReturnObject(????,Id)//what should come in place of question mark??
            }
}

我应该如何将我的第一个参数传递给 ReturnObject 方法???

4

1 回答 1

1

改变你的ReturnObject方法。它应该只Id作为参数和过滤数据而不是返回对象Floor

public static Floor ReturnObject(int Id)
{
  using(MyDBContext context = new  MyDBContext())
  {
       var data = context.floors.Where(a =>a.Id == Id).FirstOrDefault();
       return ad;
   }
}

当你调用它时,不仅仅是传递 id 作为参数

var data=MyClass.ReturnObject(Id);

这将返回将存储在中的楼层对象data

于 2015-05-20T07:54:34.990 回答