如何将db对象和模型对象传递给函数

时间:2013-06-25 01:56:52

标签: 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.AsExpandable().Where(predicate);

我想要一个像这样的功能

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
}

1 个答案:

答案 0 :(得分:1)

在这里走出困境......认为这是一个泛型问题

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;}
}