ASP.Net Linq获取列名和数据

时间:2013-04-19 11:45:56

标签: c# asp.net linq entity-framework

我正在尝试按如下方式创建一个系统 -

  1. UI图层 - 包含用于过滤要显示的数据的选项的下拉列表

  2. 中间层 - 操作数据的“.cs”类

  3. Back Layer - 这里数据被过滤并返回到类中(EDMX文件和类)

  4. 但是我的实现不起作用......错误显示为“不同上下文的参考”..

    protected void Page_Load(object sender, EventArgs e)
    {
        inc = (IQueryable<Incident_Raw_Data>)Session["INC"];
        AppInfo = (IQueryable<Application_Info>)DbData.GetDBData().AppInfo;
        RespConfg = (IQueryable<Response_Config>)DbData.GetDBData().RespConfig;
        ResolConfg = (IQueryable<Resolution_Config>)DbData.GetDBData().ResolConfig;
    
        DTbl = QueryRslt(xyz, abc);
        Data = GetData();
        Cols = Col();
    }
    

    别介意丢失任何退货声明;;

    public DataTable QueryRslt(string Type, string Value)
    {
        if (!string.IsNullOrEmpty(Type))
        {
            var str = (from IR in inc
                       join AI in AppInfo on IR.CI equals AI.Application_Name
                       join RC in RespConfg on AI.Service_Level_Categoty equals RC.Category
                       where (RC.Tkt_Type == "Incident" && IR.Priority == Value)
                       select new
                       {
                           ID = IR.Incident_ID,
                           CI = IR.CI,
                           Status = IR.Status,
                           BenchMark_Response_Time = RC.Days_Benchmark,
                           SLMDeviation = ((EntityFunctions.DiffHours(IR.Incident_Reported_Date, IR.Incident_Responded_Date) / 24.0) - RC.Days_Benchmark),
                           Priority = IR.Priority,
                           ReportedDate = IR.Incident_Reported_Date,
                           RespondDate = IR.Incident_Responded_Date,
                           AssigneeGroup = IR.Assignee,
                           AssignedGroup = IR.Assigned_Group
                       }).ToList();
        }
    }
    

1 个答案:

答案 0 :(得分:2)

看起来您正在尝试加入不同的数据上下文。 这是不受支持的。

您还应该在需要时实例化数据上下文对象,而不是将其存储在会话中,因为我猜您正在使用“INC”。

inc,不得从数据上下文的不同实例收集APPInfo和RestConf。