MVC LINQ to SQL Table Join Record Display

試著忘記壹切 提交于 2019-11-29 02:45:26
foreach (table1 m in (IEnumerable)ViewData.Model)

m is not of type table1. It is an anonymous type (select new { ... } in CViewDataUC.cs).

You should create a class that represents the type of the model objects you are passing from controller to view.

Thanks, that worked like a charm. I totally overlooked the problem, I guess it's a Monday that's why :P. But for the people that run in the same problem and are still new to MVC and LINQ to SQL the problem is solved easily do these steps:

  1. Create a class CInformation.cs Add variables similiar to your query

    public class CInformation {

    public CInformation() { }
    
    public string _column1{ get; set; }
    public string _column2{ get; set; }
    ...
    

    }

  2. In your query

    public void uc_VDGenInfoDC(ViewDataDictionary viewData, int id) {

        var dataContext = new testDataContext();
    
        IQueryable<CInformation> info = from table1 in dataContext.table1
                                        join table2 in dataContext.table2 on table1.type_id equals table2.type_id        
                                        join table3 in dataContext.table3 on table1.id equals table3.id                  
                                        join table4 in dataContext.table4 on table1.id equals table4.id                       
                   where table1.test_id == id
                   select new CInformation
                   {
                       _column1 = table1.column1.ToString(),
                       _column2 = table2.column1.ToString(),
                       ...
                   };         
    
        viewData["vd_Info"] = info;
    
    }
    
  3. In your User Control or view

    foreach (CInformation m in (IEnumerable)ViewData.Model){

     m.column1
     m.column2
     ...
    

    }

Thanks, this has helped me a lot!

One small comment, you have to use angle brackets:

IQueryable<CInformation> info = from table1 in dataContext.table1
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!