mvc4从tolist查询中获取值并将其应用于另一个查询

时间:2014-10-21 06:29:35

标签: asp.net-mvc asp.net-mvc-4 tolist

我在控制器中基本上有(2) .Tolist()查询;我想要做的是从特定列中获取一个数字列表,并将其嵌入到控制器中的第二个.tolist查询中,此示例应清除它

int myid = Convert.ToInt32(User.Identity.Name);
// I would like to get extract the info. from ProfileID column and use in comments tolist
var friendprofile = sqlConnection.Query<profile>("Select * from  profiles where ProfileID In (Select ProfileID from followings where me=@profile)", new { profile = myid }).ToList();
var comments = sqlConnection.Query<comment>("Select * from comments where profileID=@profile", new { profile = friendprofile}).ToList();

var friendprofile 每次运行时都有效;它给了我2个配置文件是正确的(这个用户只有2个朋友)现在我想得到ProfileID 的int值(从以下选择ProfileID,我= @ profile)并使用那些评论变量中的值。 friendprofile 变量获取用户朋友个人资料的列表,并提取他或她的朋友唯一ID(ProfileID);并且注释变量选择用户朋友评论。我知道这部分错了 profile = friendprofile ;我本来希望做这样的事情 profile = friendprofile.followings.ProfileID 但我不能,因为它是一个tolist任何帮助或建议都会很棒。

1 个答案:

答案 0 :(得分:0)

试试这个,

将您的第二个选择查询修改为,

        string profileIdValues = string.Empty;
        foreach (string proId in profileIds)
        {
            profileIdValues = proId + ", " + profileIdValues;
        }
        // Will remove the trailing ',' from the profileIdValues.
        profileIdValues = profileIdValues.Remove(profileIdValues.Length - 2, 1);
        var comments = sqlConnection.Query<comment>("Select * from comments where profileID IN (@profile)", new { profile = profileIdValues }).ToList();

注意:在此我更改您的个人资料ID类型我假设有字符串。