我有以下SQL查询: -如何实现一个左外连接的实体框架
select distinct * from dbo.Profiles profiles
left join ProfileSettings pSet on pSet.ProfileKey = profiles.ProfileKey
left join PlatformIdentities pId on pId.ProfileKey = profiles.Profilekey
我需要将其转换为LinqToEntities表达。我试过以下内容: -
from profiles in _dbContext.ProfileSet
let leftOuter = (from pSet in _dbContext.ProfileSettingSet
select new
{
pSet.isInternal
}).FirstOrDefault()
select new
{
profiles.ProfileKey,
Internal = leftOuter.isInternal,
profiles.FirstName,
profiles.LastName,
profiles.EmailAddress,
profiles.DateCreated,
profiles.LastLoggedIn,
};
上面的查询工作正常,因为我没有考虑第三个表“PlatformIdentities”。单一的左外连接与我上面所做的一样。我如何包含PlatformIdentities(第三张表)?我基本上想要将我在本文开头指定的SQL查询(这正是我所需要的)转换为LinqToEntities。
感谢
什么是'profiles.ProfileSettings'和'profiles.PlatformIdentities'的基数? – 2010-03-31 12:41:15
这两个表与他们的父表“Profiles”共享一对多关系。他们之间没有任何基数。 – user206736 2010-03-31 17:04:21
恩,好吧,但是你只是想抓住许多(每个问题中的LINQ)的第一个记录?你想要哪张唱片? – 2010-03-31 18:47:47