我可以把这个单独的类? [英] Can I put this in separate class?

查看:107
本文介绍了我可以把这个单独的类?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这种重复件code的:

I have this repetitive piece of code:

var expCodes = (from cpdet in _dataContextOrders.CodeProfileDetails
                join cpd in _dataContextOrders.CodeProfileDefinitions on cpdet.CodeProfileDefinitionID equals cpd.ID
                join cp in _dataContextOrders.CodeProfiles on cpd.CodeProfileID equals cp.ID
                join cc in _dataContextOrders.FMSCostCentres on cpdet.CostCentreID equals cc.ID
                join ec in _dataContextOrders.FMSExpenseCodes on cpdet.ExpenseCodeID equals ec.ID
                where cp.ID == Convert.ToInt32(intCostCodeProfileId)
                                  && cpdet.CostCentreID == Convert.ToInt32(intCostCentreSelected)
                                  && ec.Active == true
                select new
                {
                    ec.ID,
                    ec.CostCentreID,
                    ExpenseCodeExternalRef = ec.ExternalRef,
                    ExpenseCodeDescription = ec.Description,
                    displayExpenseCode = ec.ExternalRef + " " + ec.Description
                 }).Distinct().OrderBy(ec => ec.displayExpenseCode);

ddlExpCode1.DataSource = expCodes;
ddlExpCode1.DataTextField = "displayExpenseCode";
ddlExpCode1.DataValueField = "ID";

我想要做的就是把它变成一类自身,正如我们LinqToSql以前那样,我可以从我的aspx.cs页面调用,使用2个参数,intCost codeProfileId和intCost codeProfileId,它会返回数据的下拉列表。

What I would like to do is to put it into a Class on its own, as we did before LinqToSql, that I can call from my aspx.cs page, using the 2 parameters, intCostCodeProfileId and intCostCodeProfileId and it will return the data for the Drop Down List.

我怎样才能做到这一点?

How can I do this?

推荐答案

创建一个普通类(例如Connection.cs),并添加了一些code是这样的:

Create a normal class (e.g. Connection.cs) and add some code like this:

public class MyDataSourceReturner
{
    public static Object retDatasource(Object _dataContextOrders, int intCostCodeProfileId){
    var expCodes = (from cpdet in _dataContextOrders.CodeProfileDetails
            join cpd in _dataContextOrders.CodeProfileDefinitions on cpdet.CodeProfileDefinitionID equals cpd.ID
            join cp in _dataContextOrders.CodeProfiles on cpd.CodeProfileID equals cp.ID
            join cc in _dataContextOrders.FMSCostCentres on cpdet.CostCentreID equals cc.ID
            join ec in _dataContextOrders.FMSExpenseCodes on cpdet.ExpenseCodeID equals ec.ID
            where cp.ID == Convert.ToInt32(intCostCodeProfileId)
                              && cpdet.CostCentreID == Convert.ToInt32(intCostCentreSelected)
                              && ec.Active == true
            select new
            {
                ec.ID,
                ec.CostCentreID,
                ExpenseCodeExternalRef = ec.ExternalRef,
                ExpenseCodeDescription = ec.Description,
                displayExpenseCode = ec.ExternalRef + " " + ec.Description
             }).Distinct().OrderBy(ec => ec.displayExpenseCode);

    return expCodes;
    }
}

之后,您可以使用此code是这样的:

Afterwards you can use this code like this:

ddlExpCode1.DataSource = MyDataSourceReturner.retDatasource(_dataContextOrders, 5);

和接收您的数据源。

这篇关于我可以把这个单独的类?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆