Linq - 连接表并填充单个对象

时间:2012-08-14 01:22:43

标签: linq entity-framework

我有一个项目,我处理“产品”。 产品有许多不同的属性,都存储在产品表中。由于性能问题,有一个名为“信誉”的表,用于存储有关产品声誉的信息。

“Product”类具有许多不同属性的属性和信誉信息的属性。

我想使用linq使用连接查询数据库。

问题是:我怎么说“来自产品表的所有内容都应该填充产品类中的相应属性,而信誉信息应填充”信誉“属性”?

我有这个代码,我觉得我很近,但我还没有管理它......

var product = (from product in product.Table
                     join reputation in reputation.Table 
on product.ProductId equals reputation.ProductId
                     select new Product { Reputation = reputation
                     }).SingleOrDefault();

我在哪里设置其他属性?像“产品=产品。*”

之类的东西

谢谢!

编辑:产品类包含信誉信息,它在数据库中以性能问题分隔

2 个答案:

答案 0 :(得分:0)

  • 由于您有额外的字段,因此无法选择新产品 声誉,而不是产品类(我假设)。

  • 注意,如果你有更多,SingleOrDefault()将抛出异常 一个结果所以在这种情况下我没有看到任何一点使用它。

  • 您可以选择新的{all fileds you,而不是选择新产品 需要填充=相应的值}你需要显式写 所有你需要的,你不能使用像产品这样的东西。*

答案 1 :(得分:0)

据我所知,这是不可能的,但另一种解决方案是批量选择,首先搜索产品,然后搜索信誉,之后手动合并,如下所示:

http://tonesdotnetblog.wordpress.com/2008/07/23/linq-to-sql-batches-and-multiple-results-without-stored-procedures-by-tony-wright/