如何在asp.net-mvc中消除此错误?

如何在asp.net-mvc中消除此错误?,asp.net-mvc,linq-to-sql,Asp.net Mvc,Linq To Sql,我使用LINQtoSQL作为ORM。这是我写的 public IQueryable<Material> FindAllMaterials() { var materials=from m in db.Materials join Mt in db.MeasurementTypes on m.MeasurementTypeId equals Mt.Id select new { m.Mat_id,

我使用LINQtoSQL作为ORM。这是我写的

public IQueryable<Material> FindAllMaterials()
 {
   var materials=from m in db.Materials
               join Mt in db.MeasurementTypes on m.MeasurementTypeId equals Mt.Id
               select new { m.Mat_id, 
               m.Mat_Name, 
               Mt.Name, 
                m.Mat_Type };

  return materials;
 }
试一试 这个

刚刚添加了“新材质()”

公共可查询FindAllMaterials()
{
var materials=从m开始,单位为db.materials
在m上的db.MeasurementTypes中加入Mt。MeasurementTypeId等于Mt.Id
选择新材质(){Mat_id=m.Mat_id,
材料名称=m.Mat\u名称,
Mat_Type=m.Mat_Type};
归还材料;
}

要获得与SQL相同的结果集,请尝试:

    public class MatertialSet
    {
        public int Mat_id  { get; set; }
        public string Mat_name { get; set; }
        public string Measurement { get; set; }
        public string Description { get; set; }
    }

    public static IQueryable<MatertialSet> FindAllMaterials()
    {
        var materials = from m in db.Materials
                        join Mt in db.MeasurementTypes on m.MeasurementTypeId equals Mt.Id
                        select new MatertialSet
                        {
                            Mat_id = m.Mat_Id,
                            Mat_name = m.Mat_Name,
                            Description = Mt.Name,
                            Measurement = m.Mat_Type
                        };
        return materials.AsQueryable();
    }
公共类MaterialSet
{
公共int Mat_id{get;set;}
公共字符串Mat_name{get;set;}
公共字符串度量{get;set;}
公共字符串说明{get;set;}
}
公共静态可液化FindAllMaterials()
{
var materials=从m开始,单位为db.materials
在m上的db.MeasurementTypes中加入Mt。MeasurementTypeId等于Mt.Id
选择新材质集
{
Mat_id=m.Mat_id,
材料名称=m.Mat\u名称,
描述=机器名称,
测量=m.Mat_类型
};
返回物料。AsQueryable();
}

@nWorx我遇到错误
无法使用集合初始值设定项初始化类型“CrMVC.Models.Material”,因为它未实现“System.Collections.IEnumerable”
@nWorx error
CrMVC.Models.Material不包含ID、名称和,类型
尝试将返回类型从IQueryable更改为IEnumerable。@Bermo仍然存在相同的错误
CrMVC.Models.Material不包含ID、名称、类型的定义
@pandiya我没有任何关于材质类的信息,只需使用适当的属性替换ID、名称和类型-我已更新了代码。。。。
select M.Mat_id,M.Mat_Name,T.Name as Measurement,M.Mat_Type as Description
from Material as M inner join 
    MeasurementTypes as T on M.MeasurementTypeId = T.Id where M.Is_Deleted=0
public IQueryable<Material> FindAllMaterials()
 {
   var materials=from m in db.Materials
               join Mt in db.MeasurementTypes on m.MeasurementTypeId equals Mt.Id
               select new Material(){ Mat_id = m.Mat_id, 
                Mat_Name = m.Mat_Name, 
                Mat_Type = m.Mat_Type };

  return materials;
 }
    public class MatertialSet
    {
        public int Mat_id  { get; set; }
        public string Mat_name { get; set; }
        public string Measurement { get; set; }
        public string Description { get; set; }
    }

    public static IQueryable<MatertialSet> FindAllMaterials()
    {
        var materials = from m in db.Materials
                        join Mt in db.MeasurementTypes on m.MeasurementTypeId equals Mt.Id
                        select new MatertialSet
                        {
                            Mat_id = m.Mat_Id,
                            Mat_name = m.Mat_Name,
                            Description = Mt.Name,
                            Measurement = m.Mat_Type
                        };
        return materials.AsQueryable();
    }