using (Entities PlatfrmName = new Entities())
{
foreach (string selectedProject in SplitSelectedprojects)
{
var platformId = from platformID in PlatfrmName.AppProjects84
where platformID.ProjectName == selectedProject
select platformID.PlatformId;
var platformName = from platfrmName in PlatfrmName.AppPlatforms84
where platfrmName.PlatformId.ToString() == platformId.ToString()
select platfrmName.PlatformName;
//Get the projects based on the platforms
if (platformName.ToString() == "Base")
BASE += selectedProject + ",";
if (platformName.ToString() == "Windows")
WINDOWS += selectedProject + ",";
if (platformName.ToString() == "Web")
WEB += selectedProject + ",";
if (platformName.ToString() == "Wpf")
WPF += selectedProject + ",";
if (platformName.ToString() == "Silverlight")
SILVERLIGHT += selectedProject + ",";
if (platformName.ToString() == "Mvc")
MVC += selectedProject + ",";
}
}
我希望结果为platformName == Base
,然后该项目应该添加到BASE变量中。当控件到达if (platformName.ToString() == "Base")
时,我将光标悬停在该控件上,它什么也没显示。任何人都可以帮助我。
答案 0 :(得分:0)
第二个查询的结果不是Platform的对象,而是IQueryable。因此,ToString不会返回您期望的任何字符串。另外,第二个查询(可能是第一个)根本不对数据库执行,因为没有任何东西强制执行(即没有评估)。我也相信你可以只有一个查询而不是两个。像这样:
var platformName = (from platform in PlatfrmName.AppProjects84
where platformID.ProjectName == selectedProject
select platform.PlatformName).Single();
应该做的 - 首先,它结合了两个查询。其次,它使用.Single()强制进行查询评估。这样,查询将被发送到数据库以获取结果。我假设您只期望给定项目的一个结果,因此我使用Single()。 .Single()的结果是单个对象而不是IEnumerable,因此您应该能够获得您的platformName。此外,如果platformName是字符串,则不必使用.ToString()。