2010-06-08 81 views
0

嗨,我是非常新的实体,SQL,C#和asp.net,所以这可能是很容易修复。无法从查询构造一个实体(复杂)对象

我试图显示存储在我的表中的所有非活动产品称为产品在数据网格中。

var productQuery = from b in solutionContext.Version 
        where b.Product.Name == search && b.Product.ActiveNumber > b.VersionNumber 
        select new Product 
        { 
            Name = b.Product.Name, 
            Description = b.Product.Description, 
            ID = b.ID, 
            LastNumber = b.Product.LastNumber, 
            MiddleNumber = b.Product.MiddleNumber, 
            RSTATE = b.RSTATE, 
            ActiveNumber = b.Product.ActiveNumber, 
            LastModified = b.Product.LastModified, 
            ParentID = b.Product.ParentID, 
            ProductType = b.Product.ProductType 
        }; 

        ProductsGrid.DataSource = productQuery; 
        ProductsGrid.DataBind(); 

我收到此错误:

  • $ {例外 “实体或复杂类型 'SolutionsModel.Product' 不能在LINQ被构造为实体查询”} {System.Exception的系统.NotSupportedException}

感谢您的任何建议!

回答

3

错误是说您无法生成类型为Product的LINQ to Entities对象。但你可以退货。你可以尝试返回可能正常工作的产品吗?

var productQuery = from b in solutionContext.Version 
        where b.Product.Name == search && b.Product.ActiveNumber > b.VersionNumber 
        select b.Product; 

        ProductsGrid.DataSource = productQuery; 
        ProductsGrid.DataBind(); 
+0

谢谢,但我应该在哪里放置回报?对不起,我仍然试图弄清楚这一点。 – PFranchise 2010-06-08 21:49:50

+0

非常感谢您亲切的先生。我相信在这个项目的生命周期中我会有更多的问题,但这是一个非常有用的步骤。祝你有个美好的一天 – PFranchise 2010-06-08 22:21:53

+0

O,如果你不介意我有一方面的问题。每个不活动的产品都有不同的版本,它们具有不同的RSTATE。这些存储在我的版本表中。由于我返回Product对象,因此我需要将它们的RSTATE更改为与它们相关的Version对象相同。从产品到版本之间存在一对多的关系。我如何访问这些并更改我返回的产品上的这些属性。我认为这将是类似于 – PFranchise 2010-06-08 22:30:14

相关问题