簡體   English   中英

如何從linq數據庫模型獲取數據

[英]how to get data from linq database model

我正在嘗試在C#程序中使用LINQ從數據庫中獲取信息。 我發現了很多顯示基本查詢到高級查詢的示例,但是在嘗試構建時出現錯誤。 請參見下面的基本LINQ示例:帶有LINQ的類

 public class StdFy
{
    public object GetStdFy(DrillholeEntities ddb)
    {
        try
        {
            var myList = ((from t1 in ddb.DTM_QAQC_BLK_STD from t2  in ddb.DTM_STANDARDSASSAY.Where(x=> t1.STANDARDID==x.STANDARDID && t1.ASSAYVALUE==x.STANDARDVALUE)
                           select new
                           {
                               CHECKID = t1.CHECKID,
                               STANDARDID = t1.STANDARDID,
                               PRIORITY = t1.ASSAY_PRIORITY,
                               NAME = t1.ASSAYNAME,
                               ASSAYVALUE = t1.ASSAYVALUE,
                               STANDARDVALUE = t2.STANDARDVALUE,
                               STANDARDDEVIATION = t2.STANDARDDEVIATION,
                               NORMALIZACION = (t2.STANDARDVALUE- t1.ASSAYVALUE)/ t2.STANDARDDEVIATION,
                               LABJOBNO = t1.LABJOBNO,
                               LOADDATE = t1.RETURNDATE


                           })).OrderBy(x => x.LOADDATE).ToList();

            return myList;
        }
        catch (Exception)
        {              
            throw new NotImplementedException();
        }
    }
}

接着

DrillholeEntities ddb;
StdFy stdFy = new StdFy();
using (ddb = new DrillholeEntities())
                {

                    IOrderedEnumerable<DTM_QAQC_BLK_STD> datosTodos;
                    datosTodos = stdFy.GetStdFy(ddb);
                 }

當我建立項目時,我得到了錯誤

嚴重性代碼說明項目文件行抑制狀態錯誤CS0266無法將類型'object'隱式轉換為'System.Linq.IOrderedEnumerable'。 存在顯式轉換(是否缺少強制轉換?)Inspinia_MVC5 C:\\ Users \\ chachl9 \\ Documents \\ Visual Studio 2015 \\ Projects \\ MVC5_Full_Version \\ Inspinia_MVC5 \\ Controllers \\ GraphsController.cs 55活動

您將通過以下方式返回匿名類型的對象列表

select new { ... }

多數民眾贊成在使用對象作為方法的返回類型的原因。 比您將返回值分配給特定類型。 這就是拋出異常ist的原因。

為了完成這項工作,我將實現一個包含所有所需屬性的新類。 用在

select new MyNewClass { Property1 = ...}

將方法的返回類型從object更改為IEnumerable<MyNewClass> 還要為您分配返回值的變量。


您還應該使用Gert Arnold在評論中提到的PascalCase屬性。

.Where(x => ...) LINQ語法中的select from in where與Lambda方法混合使用.Where(x => ...)使其難以閱讀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM