不存在关联时选择相关实体

发布于 2024-10-31 10:19:02 字数 303 浏览 0 评论 0原文

EF4 非常适合提取关联数据,但是当关联不明确时该怎么办?一个例子说明了我的情况:

MasterTable 有一个 child1Id 和 child2Id 列。

有两张表Child1和Child2,对应主键child1Id和child2Id。有 Master、Child1 和 Child2 实体。

Master 和 Child1 / Child2 表或实体之间没有外键或实体框架关联。

当我只有主表中匹配的子ID时,如何从两个子表中选择主记录和相应的子记录?

我无法改造关系或关联。

理查德

EF4 is great for pulling in associated data but what do you do when the association is not explicit? An example illustrates my situation:

MasterTable has a child1Id and child2Id column.

There are two tables Child1 and Child2 with corresponding primary key child1Id and child2Id. There are Master, Child1 and Child2 entities.

There is no foreign key or entity framework association between Master and Child1 / Child2 tables or entities.

How can I select the master records and corresponding child records from the two child tables when all I have are the matching child Ids in the master?

I can't retrofit a relationship or association.

Richard

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

时光匆匆的小流年 2024-11-07 10:19:02

您必须通过 linq toEntity 手动选择它们。以下是如何在两个表之间进行左连接:

var query = from m in context.Masters
            where m.Id == 1
            join c in context.Childs on m.Child.Id equals c.Id into leftJoin
            from x in leftJoin.DefaultIfEmpty()
            select new
                {
                    Id = x.Id,
                    Name = x.Name,
                    Child = x.Childs
                };

顺便说一句。如果您的实体具有包含来自其他实体的 PK 值的属性,您可以在 EF 设计器。在这种情况下,您将能够使用导航属性。

You must select them manually by linq to entities. Here is how to do left join between two tables:

var query = from m in context.Masters
            where m.Id == 1
            join c in context.Childs on m.Child.Id equals c.Id into leftJoin
            from x in leftJoin.DefaultIfEmpty()
            select new
                {
                    Id = x.Id,
                    Name = x.Name,
                    Child = x.Childs
                };

Btw. if your entities have a property which contains a value of PK from other entity you can create relation in EF designer. In such case you will be able to use navigation properties.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文