Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
Asp.net mvc 3 使用某些条件筛选SelectListItem值_Asp.net Mvc 3_Linq_Entity Framework 4_Html Select - Fatal编程技术网

Asp.net mvc 3 使用某些条件筛选SelectListItem值

Asp.net mvc 3 使用某些条件筛选SelectListItem值,asp.net-mvc-3,linq,entity-framework-4,html-select,Asp.net Mvc 3,Linq,Entity Framework 4,Html Select,我有一个SelectListItem用于DropDownList。我必须根据某些条件进行筛选。如果我尝试添加条件,那么它会给我一个类似这样的错误(LINQ to Entities无法识别方法'System.String ToString()'方法,并且该方法无法转换为存储表达式)。我将在这里添加代码。请引导我解决这个问题 代码 IEnumerable<SelectListItem> IssueId = (from txt in Db.Issues where txt.BibI

我有一个SelectListItem用于DropDownList。我必须根据某些条件进行筛选。如果我尝试添加条件,那么它会给我一个类似这样的错误(LINQ to Entities无法识别方法'System.String ToString()'方法,并且该方法无法转换为存储表达式)。我将在这里添加代码。请引导我解决这个问题

代码

    IEnumerable<SelectListItem> IssueId = (from txt in Db.Issues where txt.BibId == BibId
            select new SelectListItem()
        {
            Text = txt.Description,
            Value = txt.Id.ToString(),
            Selected = true,
        });
        SelectList IssueIds = new SelectList(IssueId, "Value", "Text");
        ViewBag.IssueId = IssueIds;
IEnumerable IssueId=(来自Db.Issues中的txt,其中txt.BibId==BIBIBID
选择新的SelectListItem()
{
Text=txt.Description,
Value=txt.Id.ToString(),
所选=真,
});
SelectList IssueId=新的SelectList(IssueId,“值”、“文本”);
ViewBag.IssueId=IssueId;
谢谢

试试这个:

LINQ2EF不知道ToString(),但在AsEnumerable()之后,当实现ToString()时,您将获得一个本地集合

        IEnumerable<SelectListItem> IssueId = 
(from txt in Db.Issues.Where(e => e.BibId == BibId).AsEnumerable()
    select new SelectListItem()
    {
        Text = txt.Description,
        Value = txt.Id.ToString(),
        Selected = true     
});
IEnumerable IssueId=
(来自Db.Issues.Where(e=>e.BibId==bibibid.AsEnumerable()中的txt)
选择新的SelectListItem()
{
Text=txt.Description,
Value=txt.Id.ToString(),
所选=真
});

Linq To Sql无法为txt.Id.ToString()生成TSQL


执行查询后,您将需要迭代结果,或者按照xeondev的建议转换为Enumerable。

该扩展似乎没有按linq排序到实体,但您可以在出现问题后进行映射,例如

var issues = (from issue in Db.Issues 
               where issue .BibId == BibId 
               select issue ).ToList();     

IEnumerable<SelectListItem> IssueId = (from txt in issues 
                                       where txt.BibId == BibId
                                      select new SelectListItem()
                                      {
                                        Text = txt.Description,
                                        Value = txt.Id.ToString(),
                                        Selected = true,
                                      });
var-issues=(来自数据库中的问题)
其中issue.BibId==BibId
选择issue.ToList();
IEnumerable IssueId=(来自问题中的txt)
其中txt.BibId==bibibid
选择新的SelectListItem()
{
Text=txt.Description,
Value=txt.Id.ToString(),
所选=真,
});
那么错误是什么?“一些错误”告诉我们什么。帮助我们帮助你。