3

我有两个表位于两个独立的实体框架模型中,我想检索在两个表之间进行 JOIN 的数据。我正在使用实体框架 3.1。

是否可以检索在两个表之间进行 JOIN 的信息?

如果是,我应该使用“LINQ to Entities”还是“Entity SQL”?

4

3 回答 3

0

实体框架模型是数据库(存储)模型和类模型之间的映射。目前(如果有的话)一个 EF 模型无法读取另一个模型的映射信息。因此它无法将外星人类映射到表,更不用说创建涉及该表的 SQL。就 EF 而言,这些表可能位于两个完全不同的数据库中。

备择方案:

  • 使用 linq-to-objects 连接从两个模型中预取的数据,即通过 eg 提取到内存中的数据ToList()
  • 从一个模型收集值列表并使用它从另一个模型获取数据(例如,在从另一个模型获取sOrderId的语句中使用的 s列表- 不切实际的示例,好的)。ContainsOrderline
  • 仅使用一个 EF 模型映射到两个(以及更多)表。
于 2012-07-24T18:18:29.467 回答
0

据我所知,EF不会这样做。您不能使用来自多个域的实体创建单个表达式。当您请求结果的第一项时,它将失败。

于 2012-07-24T14:29:44.890 回答
-1

您现在可能已经想通了,但这是我的解决方案:

var data = db.FirstEntity
           .Join(db.SecondEntity, ent1 => ent1.ID, ent2 => ent2.ForeignKeyID,
           (ent1, ent2) => new { LeftSideObject = ent1, RightSideObject = ent2 }) 
           .Select(x => x.LeftSideObject); 

我已经尽可能通用地命名变量,希望它有意义!

于 2013-09-25T07:50:55.270 回答