![](/img/trans.png)
[英]How to get data as IEnumerable<MODEL> from DataTable by using 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.