Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# mvc 4 linq内部联接无法将列表绑定到模型_C#_Entity Framework_Linq_Asp.net Mvc 4 - Fatal编程技术网

C# mvc 4 linq内部联接无法将列表绑定到模型

C# mvc 4 linq内部联接无法将列表绑定到模型,c#,entity-framework,linq,asp.net-mvc-4,C#,Entity Framework,Linq,Asp.net Mvc 4,这是我的视图模型 public class MyViewModel { public string upld_documentname { get; set; } public uploadtbl upload_document { get; set; } public List<uploadtbl > Upload_List { get; set; } } 公共类MyViewModel { 公共字符串upld_doc

这是我的视图模型

public class MyViewModel
    {
        public string upld_documentname { get; set; }
        public uploadtbl upload_document { get; set; }
        public List<uploadtbl > Upload_List { get; set; }
    }
公共类MyViewModel
{
公共字符串upld_documentname{get;set;}
公共上传TBL上传_文档{get;set;}
公共列表上载\u列表{get;set;}
}
uploadtbl包含许多字段,如文档id、创建人、客户id、emp id、emp公民id等。 这是我的问题

 public List<uploadtbl> getclientinfo(int client_id, int emp_id, int empcitizen_id)
        {
           List<uploadtbl > tm= (from c in db.uploadtbl  where (c.upld_clientid == client_id && c.upld_employeeid == emp_id) select c).toList()
            return tm;
        }
public List getclientinfo(int-client\u-id、int-emp\u-id、int-emp-citizen\u-id)
{
List tm=(从db.uploadtbl中的c开始,其中(c.upld\u clientid==客户端id&&c.upld\u员工id==emp\u id)选择c)
返回tm;
}
此处uploadtbl包含作为外键的文档id。现在,我的查询返回document_id,但我想显示另一个表中的document_名称。是否可以在这里执行此操作,因为我最终将查询结果绑定到model.Upload_列表(从viewmodel)。我编写了内部联接,查询返回文档\u名称,但无法为model.Upload\u列表绑定它。我需要更改我的viewmodel吗?请建议。提前谢谢。 像这样的我试过了

public IEnumerable<MyViewModel> getclientinfo(int client_id, int emp_id, int empcitizen_id)
        {
            var uu = (from c in db.uploadtbl join doc in db.doc_type on c.upld_docid equals doc.doc_typeid where (((c.upld_clientid == client_id && c.upld_employeeid == emp_id && empcitizen_id == 0) || (c.upld_clientid == client_id && c.upld_empcitizenid == empcitizen_id && emp_id == 0)) || (client_id == 0 && emp_id == 0 && c.upld_empcitizenid == empcitizen_id)) && c.upld_doc_delstatus == 0 select new { doc.doctype_name, c.upld_docnumber, c.upld_docexpirydate });
            return uu.AsEnumerable;

        }
public IEnumerable getclientinfo(int-client\u-id、int-emp\u-id、int-emp-citizen\u-id)
{
var uu=(c.upld_docid上的db.doc_type中的c.upld_连接doc=doc.doc_类型id,其中(((c.upld_clientid==客户端id&&c.upld_员工id==emp_id&&emp_id==0))| |(c.upld_客户端id==客户端id&&c.upld_empcitizenid==公民id&&emp_id==0))|(client_id==0&&emp_id==0&&c.upld_empcitizenid==empcitizenid))&&c.upld_doc_delstatus==0选择新的{doc.doctype_name,c.upld_docnumber,c.upld_docexpirydate});
返回uu.AsEnumerable;
}

但是这里返回uu.AsEnumerable我遇到错误。我缺少类型转换的地方?请在代码末尾帮助我,您需要创建新的
MyViewModel
对象,而不是匿名类型。更改:

select new { ...
致:

确保为LINQ的结果设置了适当的属性


另外,我认为你不需要在结尾处使用
AsEnumerable

我是不是问错了?
select new MyViewModel { ...