使用LINQ从单元集读取

使用LINQ从单元集读取,linq,ssas,mdx,adomd.net,Linq,Ssas,Mdx,Adomd.net,可以使用LINQ从单元集中读取数据吗?我曾尝试使用DataTable而不是CellSet,但这是一个慢得多的示例:我使用DataTable执行一个查询需要约45秒,而使用CellSet则需要约5秒 尝试使用LINQ时出现的错误: 找不到源类型的查询模式的实现 “Microsoft.AnalysisServices.AdomdClient.CellSet.”选择“未找到” 更新: 我试过Enrico的建议,到目前为止,它没有返回任何错误。下一个问题是如何从单元格中读取值。以下是我迄今为止所尝试的:

可以使用LINQ从单元集中读取数据吗?我曾尝试使用DataTable而不是CellSet,但这是一个慢得多的示例:我使用DataTable执行一个查询需要约45秒,而使用CellSet则需要约5秒

尝试使用LINQ时出现的错误:

找不到源类型的查询模式的实现 “Microsoft.AnalysisServices.AdomdClient.CellSet.”选择“未找到”

更新:

我试过Enrico的建议,到目前为止,它没有返回任何错误。下一个问题是如何从单元格中读取值。以下是我迄今为止所尝试的:

AdomdCommand cmd = new AdomdCommand(commandText, conn);
CellSet cs = cmd.ExecuteCellSet();

var result = from a in cs
             select new
             {...};

得到该错误的原因是类本身没有实现,这是LINQ所要求的

请尝试对属性执行LINQ查询。这将返回一个对象,该对象实现。从那里,您可以使用该方法轻松地将其转换为

另见:


到目前为止,它没有返回错误。您能告诉我如何从select new…(选择新…)中的单元格中读取列值吗。。。?我已经更新了我的问题。非常感谢@ile mngmOff和fn变量是什么类型的?对不起,我忘了更改该变量的名称。而不是mngmOff,它被认为是细胞。我现在已经修好了。你们也可以忽略fn,它只是一个用来格式化字符串的函数名。
var result = from cell in cs.Cells.Cast<Cell>()
     select new searchResultsPolicy
     {
         PolicyNumber = ...
         InsuredName = cell.Field<string>("[Insured].[DBA Name].[DBA Name].[MEMBER_CAPTION]"),
         Agency = cell.Field<string>("[Agency].[Agency Name].[Agency Name].[MEMBER_CAPTION]"),
         Market = cell.Field<string>("[Market].[Market Name].[Market Name].[MEMBER_CAPTION]"),             
         Revenue = String.Format("{0:#,##0}", cell.Field<double?>("[Measures].[Revenue]") ?? 0),
         Premium = String.Format("{0:#,##0}", cell.Field<double?>("[Measures].[Premium]") ?? 0)
     };
AdomdCommand cmd = new AdomdCommand(commandText, conn);
CellSet cs = cmd.ExecuteCellSet();

var result = from cell in cs.Cells.Cast<Cell>()
             select new
             { ... };