Asp.net mvc Net Mvc Linq问题
我知道我的问题很基本。如果我写Asp.net mvc Net Mvc Linq问题,asp.net-mvc,linq,Asp.net Mvc,Linq,我知道我的问题很基本。如果我写/api/category/1,我想列出categoryId==1的所有故事。我写了这段代码,但它给出了一个错误 [HttpGet] public IEnumerable<Tale> GetAllTalesByCategory(int id) { var tales = TaleService.FindAllTale().Select(x => new Tale { TaleId = x.TaleId,
/api/category/1
,我想列出categoryId==1
的所有故事。我写了这段代码,但它给出了一个错误
[HttpGet]
public IEnumerable<Tale> GetAllTalesByCategory(int id)
{
var tales = TaleService.FindAllTale().Select(x => new Tale
{
TaleId = x.TaleId,
TaleName = x.TaleName,
Content = x.Content,
VoicePath = x.VoicePath
}).Where(x => new Tale
{
x.Categories.Select(c => c.CategoryId).First() == id
});
}
型号:
Error 1 Cannot initialize type 'MasalYuvasi.Entities.Tale' with a collection initializer because it does not implement 'System.Collections.IEnumerable' D:\MvcProject\MasalYuvasi\MasalYuvasi\Controllers\DenemeController.cs 33 13 MasalYuvasi
public class Tale
{
public int TaleId { get; set; }
public string TaleName { get; set; }
public string Content { get; set; }
public string VoicePath { get; set; }
public virtual ICollection<Category> Categories { get; set; }
public Tale()
{
this.Categories = new List<Category>();
}
}
public class Category
{
public int CategoryId { get; set; }
public string CategoryName { get; set; }
public virtual ICollection<Tale> Tales { get; set; }
public Category()
{
this.Tales = new List<Tale>();
}
}
公共类
{
公共int-TaleId{get;set;}
公共字符串TaleName{get;set;}
公共字符串内容{get;set;}
公共字符串语音路径{get;set;}
公共虚拟ICollection类别{get;set;}
公共故事()
{
this.Categories=新列表();
}
}
公共类类别
{
public int CategoryId{get;set;}
公共字符串CategoryName{get;set;}
公共虚拟ICollection{get;set;}
公共类别()
{
this.Tales=新列表();
}
}
试试这个:
[HttpGet]
public IEnumerable<Tale> GetAllTalesByCategory(int id)
{
var tales = TaleService.FindAllTale().Select(x => new Tale
{
TaleId = x.TaleId,
TaleName = x.TaleName,
Content = x.Content,
VoicePath = x.VoicePath
}).Where(x => x.Categories.Select(c => c.CategoryId).First() == id).ToList();
}
[HttpGet]
公共IEnumerable GetAllTalesByCategory(int id)
{
var tales=TaleService.FindAllTale()。选择(x=>new tales
{
TaleId=x.TaleId,
TaleName=x.TaleName,
Content=x.Content,
VoicePath=x.VoicePath
}).Where(x=>x.Categories.Select(c=>c.CategoryId).First()==id.ToList();
}
修复了where条件,并添加了.ToList()
尝试以下操作:
[HttpGet]
public IEnumerable<Tale> GetAllTalesByCategory(int id)
{
var tales = TaleService.FindAllTale().Select(x => new Tale
{
TaleId = x.TaleId,
TaleName = x.TaleName,
Content = x.Content,
VoicePath = x.VoicePath
}).Where(x => x.Categories.Select(c => c.CategoryId).First() == id).ToList();
}
[HttpGet]
公共IEnumerable GetAllTalesByCategory(int id)
{
var tales=TaleService.FindAllTale()。选择(x=>new tales
{
TaleId=x.TaleId,
TaleName=x.TaleName,
Content=x.Content,
VoicePath=x.VoicePath
}).Where(x=>x.Categories.Select(c=>c.CategoryId).First()==id.ToList();
}
修复了where条件,并添加了.ToList()
尝试以下操作:
[HttpGet]
public IEnumerable<Tale> GetAllTalesByCategory(int id)
{
var tales = TaleService.FindAllTale().Select(x => new Tale
{
TaleId = x.TaleId,
TaleName = x.TaleName,
Content = x.Content,
VoicePath = x.VoicePath
}).Where(x => x.Categories.Select(c => c.CategoryId).First() == id).ToList();
}
[HttpGet]
公共IEnumerable GetAllTalesByCategory(int id)
{
var tales=TaleService.FindAllTale()。选择(x=>new tales
{
TaleId=x.TaleId,
TaleName=x.TaleName,
Content=x.Content,
VoicePath=x.VoicePath
}).Where(x=>x.Categories.Select(c=>c.CategoryId).First()==id.ToList();
}
修复了where条件,并添加了.ToList()
尝试以下操作:
[HttpGet]
public IEnumerable<Tale> GetAllTalesByCategory(int id)
{
var tales = TaleService.FindAllTale().Select(x => new Tale
{
TaleId = x.TaleId,
TaleName = x.TaleName,
Content = x.Content,
VoicePath = x.VoicePath
}).Where(x => x.Categories.Select(c => c.CategoryId).First() == id).ToList();
}
[HttpGet]
公共IEnumerable GetAllTalesByCategory(int id)
{
var tales=TaleService.FindAllTale()。选择(x=>new tales
{
TaleId=x.TaleId,
TaleName=x.TaleName,
Content=x.Content,
VoicePath=x.VoicePath
}).Where(x=>x.Categories.Select(c=>c.CategoryId).First()==id.ToList();
}
修复了where条件,并添加了
.ToList()
问题是您的代码在此处使用了:
我不确定这段代码应该做什么,但作为x.Categories.Select(c=>c.CategoryId)。First()==id
将返回bool,我认为这并不是您想要的
根据您的评论:
我想把它列在故事的类别中。例如,我有两个故事,分类是1。如果我写“/api/category/1”,我想列出这两个故事 我认为你在寻找比你现有的更简单的东西。您要选择类别id为
id
的故事(由x
表示):
.Where(x => x.Categories.Any(c => c.CategoryId == id ));
请注意,您可以通过pjobs将
.ToList()
附加到where子句的末尾,但这可能会对应用程序的行为产生微妙的影响。有关更多详细信息,请参见。问题在于您的代码使用了以下选项:
我不确定这段代码应该做什么,但作为x.Categories.Select(c=>c.CategoryId)。First()==id
将返回bool,我认为这并不是您想要的
根据您的评论:
我想把它列在故事的类别中。例如,我有两个故事,分类是1。如果我写“/api/category/1”,我想列出这两个故事 我认为你在寻找比你现有的更简单的东西。您要选择类别id为
id
的故事(由x
表示):
.Where(x => x.Categories.Any(c => c.CategoryId == id ));
请注意,您可以通过pjobs将
.ToList()
附加到where子句的末尾,但这可能会对应用程序的行为产生微妙的影响。有关更多详细信息,请参见。问题在于您的代码使用了以下选项:
我不确定这段代码应该做什么,但作为x.Categories.Select(c=>c.CategoryId)。First()==id
将返回bool,我认为这并不是您想要的
根据您的评论:
我想把它列在故事的类别中。例如,我有两个故事,分类是1。如果我写“/api/category/1”,我想列出这两个故事 我认为你在寻找比你现有的更简单的东西。您要选择类别id为
id
的故事(由x
表示):
.Where(x => x.Categories.Any(c => c.CategoryId == id ));
请注意,您可以通过pjobs将
.ToList()
附加到where子句的末尾,但这可能会对应用程序的行为产生微妙的影响。有关更多详细信息,请参见。问题在于您的代码使用了以下选项:
我不确定这段代码应该做什么,但作为x.Categories.Select(c=>c.CategoryId)。First()==id
将返回bool,我认为这并不是您想要的
根据您的评论:
我想把它列在故事的类别中。例如,我有两个故事,分类是1。如果我写“/api/category/1”,我想列出这两个故事 我认为你在寻找比你现有的更简单的东西。您要选择类别id为
id
的故事(由x
表示):
.Where(x => x.Categories.Any(c => c.CategoryId == id ));
请注意,您可以通过pjobs将
.ToList()
附加到where子句的末尾,但这可能会对应用程序的行为产生微妙的影响。有关更多详细信息,请参见。请参见“您的FindAllTale()
返回什么?IEnumerable是返回值。请参见“您的FindAllTale()
返回什么?”