今天早上有几分钟的空闲时间,所以请在下面找到一个示例实现。除了您为实现所需而指定的表之外,您还需要在两个表之间添加关联(多对多)。这将在连接表上运行,并向您的两个实体添加导航属性。
下面的查询本质上是说选择表 1 条目并包括来自 Table2 导航属性的关联记录。例如,我在上下文中关闭了延迟加载(您几乎应该一直这样做,因为它会导致跨层和/或在您的应用程序中序列化时出现问题)。
// db first
using (var db = new SO15312066Entities())
{
// iterate over table 1, with join values from 2
var query = db.Table1.Include("Table2");
foreach (var item in query)
{
Console.WriteLine("{0}:{1}", item.Id, string.Join(";", item.Table2.Select(x => x.Name).ToList()));
}
}
//output
//1:SomeText1;SomeText2
//2:SomeText3
此实现的假设是它首先是 EF 数据库(正如您最初所说的那样,您在 EF 中遇到了问题)。SO15312066Entities 是查询的 ObjectContext。
我还没有检查过它的性能如何,我将在你的实际实现中留给你。