开发者

How to get rid of this error in asp.net-mvc?

I am using Linq-to-sql as an ORM. I wrote this innerjoin

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;
 }

But when i compile this i got an error

Cannot implicitly convert type 'System.Linq.IQueryable<AnonymousType#1>' 
to 'System.Linq.IQu开发者_运维技巧eryable<CrMVC.Models.Material>'. 
An explicit conversion exists (are you missing a cast?)

Am i missing some thing... Any suggestion....

EDIT:

My sql query

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


try this one

just added the "new Material()"....

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;
 }


To obtain the same result-set as your SQL try:

    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();
    }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜