C# ASP.NET实体框架无法隐式转换类型

C# ASP.NET实体框架无法隐式转换类型,c#,asp.net,C#,Asp.net,我有一行这样的代码: ProjectClass pricing = db.Data.Where(model => model.collection == “aaa”); 但我得到了这个错误: Cannot implicitly convert type 'System.Linq.IQueryable<ProjectName.Models.ProjectClass>' to 'ProjectName.Models.ProjectClass'. An explicit conve

我有一行这样的代码:

ProjectClass pricing = db.Data.Where(model => model.collection == “aaa”);
但我得到了这个错误:

Cannot implicitly convert type 'System.Linq.IQueryable<ProjectName.Models.ProjectClass>' to 'ProjectName.Models.ProjectClass'. An explicit conversion exists (are you missing a cast?)
仅选择一项:

ProjectClass pricing = db.Data.Where(model => model.collection == “aaa”).FirstOrDefault();
仅选择一项:

ProjectClass pricing = db.Data.Where(model => model.collection == “aaa”).FirstOrDefault();
当前您正在选择一个列表。以上将获得第一项。如果您正期待一个,您可以改为执行SingleOrDefault

如果您想要一个集合(列表),那么使用ToList或ToArray来具体化结果(还有更多,但这些是常见的)

List pricing=db.Data.Where(model=>model.collection==“aaa”).ToList();
当前您正在选择一个列表。以上将获得第一项。如果您正期待一个,您可以改为执行SingleOrDefault

如果您想要一个集合(列表),那么使用ToList或ToArray来具体化结果(还有更多,但这些是常见的)

List pricing=db.Data.Where(model=>model.collection==“aaa”).ToList();

查询任何数量的结果时使用
Where

 List<ProjectClass> result = db.Data.Where(model => model.collection == “aaa”).ToList(); 
 var result = db.data.SingleOrDefault(model => model.collection == "aaa");
var result = db.data.FirstOrDefault(model => model.collection == "aaa");
如果没有匹配的记录,结果将为
null

ProjectClass pricing = db.Data.Where(model => model.collection == “aaa”);
要查询第一条匹配记录,请使用
FirstOrDefault

 List<ProjectClass> result = db.Data.Where(model => model.collection == “aaa”).ToList(); 
 var result = db.data.SingleOrDefault(model => model.collection == "aaa");
var result = db.data.FirstOrDefault(model => model.collection == "aaa");

如果没有匹配的记录,结果将为
null

查询任何数量的结果使用
Where

 List<ProjectClass> result = db.Data.Where(model => model.collection == “aaa”).ToList(); 
 var result = db.data.SingleOrDefault(model => model.collection == "aaa");
var result = db.data.FirstOrDefault(model => model.collection == "aaa");
ProjectClass pricing = db.Data.Where(model => model.collection == “aaa”);
如果没有匹配的记录,结果将为
null

ProjectClass pricing = db.Data.Where(model => model.collection == “aaa”);
要查询第一条匹配记录,请使用
FirstOrDefault

 List<ProjectClass> result = db.Data.Where(model => model.collection == “aaa”).ToList(); 
 var result = db.data.SingleOrDefault(model => model.collection == "aaa");
var result = db.data.FirstOrDefault(model => model.collection == "aaa");
如果没有匹配的记录,结果将为
null

ProjectClass pricing = db.Data.Where(model => model.collection == “aaa”);
上面的代码是错误的,因为它将返回基于谓词的过滤序列。所以,结果是多不单元素!即使Where()中的条件适用于单个元素,结果也永远不会是单个元素

引发异常,因为定价变量声明为单个ProjectClass

如果您不确定预期结果是哪种类型,您可以使用:

var pricing = db.Data.Where(model => model.collection == “aaa”);
上面的代码是错误的,因为它将返回基于谓词的过滤序列。所以,结果是多不单元素!即使Where()中的条件适用于单个元素,结果也永远不会是单个元素

引发异常,因为定价变量声明为单个ProjectClass

如果您不确定预期结果是哪种类型,您可以使用:

var pricing = db.Data.Where(model => model.collection == “aaa”);

这会给我所有的结果,其中集合将=aaa还是只有一行?它会给你第一个匹配条件的项目。若任何元素与条件不匹配,结果将为空。请参阅关于FirstOrDefault()的内容,您可以看到与First()的不同之处,这将提供collection=aaa的所有结果还是仅一行?它将提供符合条件的第一项。若任何元素与条件不匹配,结果将为空。请参阅关于FirstOrDefault()的内容,您可以看到与First()的区别,但我正在查找所有项目,但我正在查找所有项目