我在控制器中基本上有(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任何帮助或建议都会很棒。
答案 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类型我假设有字符串。