Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何将db对象和模型对象传递给函数_Asp.net Mvc_Entity Framework_Linqkit - Fatal编程技术网

Asp.net mvc 如何将db对象和模型对象传递给函数

Asp.net mvc 如何将db对象和模型对象传递给函数,asp.net-mvc,entity-framework,linqkit,Asp.net Mvc,Entity Framework,Linqkit,我想把它变成一个函数。我将传递db对象和MVC模型对象。 以下是原始代码: var SomethingApproval = db.Somethings.AsQueryable(); var predicate = PredicateBuilder.True<Something>(); predicate = predicate.And(p => p.Approved == "N"); SomethingApproval = SomethingApproval.AsExpanda

我想把它变成一个函数。我将传递db对象和MVC模型对象。 以下是原始代码:

var SomethingApproval = db.Somethings.AsQueryable();
var predicate = PredicateBuilder.True<Something>();
predicate = predicate.And(p => p.Approved == "N");
SomethingApproval = SomethingApproval.AsExpandable().Where(predicate);
var SomethingApproval=db.something.AsQueryable();
var predicate=PredicateBuilder.True();
谓词=谓词和(p=>p.Approved==“N”);
SomethingApproval=SomethingApproval.AsExpandable().Where(谓词);
我想要一个这样的函数

Function ApprovedItems (dbObject, modelObject)
{

var SomethingApproval = dbobject.AsQueryable();
var predicate = PredicateBuilder.True<modelObject>();
predicate = predicate.And(p => p.Approved == "N");
SomethingApproval = SomethingApproval.AsExpandable().Where(predicate);
return SomethingApproval
}
功能批准项(dbObject、modelObject)
{
var SomethingApproval=dbobject.AsQueryable();
var predicate=PredicateBuilder.True();
谓词=谓词和(p=>p.Approved==“N”);
SomethingApproval=SomethingApproval.AsExpandable().Where(谓词);
回信批准
}

在这里孤注一掷。。。认为这是一个泛型问题

public IQueryable<T> ApprovedItems<T>(DbObject db)
    where T : IApprovable
{
    var query = db.Set<T>();
    return query.Where(p => p.Approved == "N");
}

public interface IApprovable
{
    //By the way I do not Approve of an 
    //approve flag with type of string
    string Approved {get;}
}
公共IQueryable ApprovedItems(DbObject db)
其中T:IApprovable
{
var query=db.Set();
返回查询。其中(p=>p.Approved==“N”);
}
公共接口IApprovable
{
//顺便说一句,我不赞成
//批准字符串类型为的标志
字符串已批准{get;}
}