我有一个方法:
public static ???? GetUserProfile(Guid guid) {
var UserProfileContext = new DataContext.UserProfileDataContext();
var UserProfile = (from p in UserProfileContext.aspnet_Profiles
join u in (from u in UserProfileContext.aspnet_Users
where u.UserId == guid select u)
on p.UserId equals u.UserId
select new
{
u.UserId,
u.DisplayName,
u.AvatarPath,
u.LastActivityDate,
u.Votes,
u.Cures,
u.LinkTitle,
u.LinkURL,
p.AboutMe
}).ToList();
return UserProfile;
}
我知道我可能不得不返回List of of something?
另外,我可能错误地编写了查询。我正在尝试在user.UserID ==传递guid参数的用户集上加入一个配置文件表。
提前致谢。
答案 0 :(得分:4)
您已创建了一个匿名类型对象,您可以将其作为对象或动态类型返回。但另一种方法是使用您的必填字段创建一个新类并返回该类型,如:
public class MyModel
{
int UserId{ get; set; }
string DisplayName { get; set; }
string AvatarPath { get; set; }
DateTime LastActivityDate { get; set; }
int Votes { get; set; }
int Cures { get; set; }
string LinkTitle { get; set; }
string LinkURL { get; set; }
string AboutMe { get; set; }
}
...
public static List<MyModel> GetUserProfile(Guid guid)
{
var UserProfileContext = new DataContext.UserProfileDataContext();
var UserProfile = (from p in UserProfileContext.aspnet_Profiles
join u in (from u in UserProfileContext.aspnet_Users
where u.UserId == guid select u)
on p.UserId equals u.UserId
select new MyModel
{
UserId = u.UserId,
DisplayName = u.DisplayName,
AvatarPath = u.AvatarPath,
LastActivity = u.LastActivityDate,
Votes = u.Votes,
Cures = u.Cures,
LinkTitle = u.LinkTitle,
LinkURL = u.LinkURL,
AboutMe = p.AboutMe
}).ToList();
return UserProfile;
}
总结您的选择将是:List<MyModel>
,List<object>
,List<dynamic>
答案 1 :(得分:3)
这是一种匿名类型 因为它没有名字,所以你不能退货。
相反,您应该使用这些属性创建自己的类,然后返回它。
答案 2 :(得分:2)
您可以将返回类型设置为动态