我无法将这个他的 sql 查询转换为一个 linq 表达式,该表达式将结果作为类的 IEnumerable 返回。
这是查询:
Select * from Posts left outer join Ownergroups on
Posts.PostId=Ownergroups.PostID
Where Ownergroups.OwnerName = 'Group A' AND PostType = 'news'
这是唯一不抛出错误的表达式,但它也只返回一个结果。
NewsViewModel vm = new NewsViewModel();
vm.NewsItems = (from an in db.Posts.Where(g => g.PostType == "News")
from og in an.OwnerGroups.Where(g => g.OwnerName == "Group A")
select an).Distinct().OrderByDescending(bb
=>bb.PostDate).ToList();
如果我尝试投影到一个新的选择,我会收到一个错误。当我尝试按 PostId 分组时,我得到了正确的结果,但无法将结果附加到我的 ViewModel;我收到一条错误消息“无法将类型 system.collections.generic 列表转换为 systems.collections.IEnumerable”
我真的很感激建议。
根据要求添加类:
public class Post
{
public int PostId { get; set; }
public string PostType { get; set; }
[Display(Name = "Top Title")]
[MaxLength(300)]
public string Headline1 { get; set; }
[Display(Name = "Subtitle")]
[MaxLength(300)]
public string Headline2 { get; set; }
public string Headline3 { get; set; }
[Display(Name = "By Organization or Person")]
[MaxLength(250)]
public string Byline { get; set; }
[Display(Name = "Text For Your Post")]
[MaxLength(4999)]
[AllowHtml]
public string PostText1 { get; set; }
[Display(Name = "Additional Text")]
[MaxLength(4999)]
[AllowHtml]
public string PostText2 { get; set; }
public string AuthorGroup { get; set; }
[Display(Name = "Link to Video (URL)")]
[MaxLength(249)]
public string AVurl { get; set; }
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime PostDate { get; set; }
[Display(Name = "Date To Archive")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime? StopDate { get; set; }
[Display(Name = "Posted By")]
public string PostedBy { get; set; }
[Display(Name = "Last Edited")]
public DateTime LastEditDate { get; set; }
[Display(Name = "Last Edited By")]
温温酱
相关分类