【问题标题】:Storing linq query results in Model在模型中存储 linq 查询结果
【发布时间】:2013-10-02 19:39:17
【问题描述】:

我正在尝试查询数据库并将这些结果存储在模型中,其中一列是数字,一列是字符串数据:

型号:

using System.Data.Entity;

namespace Portal.Models
{
    public class CompanyListId
    {
        public int Id { get; set; }
        public string CompanyName { get; set; }
    }

    public class CompanyListIdDbContext : DbContext
    {
        public DbSet<CompanyListId> Contacts { get; set; }
    }
}

控制器:

    public PartialViewResult SelectCompanyFromDropdown()
            {
                using (var dc = new CompanyListIdDbContext())
                {
                    var content = from p in db.Companies
                                    select new { p.CoId, p.CompanyName };
                }
//I want to set Models ID = to each instance of coid
            //Set Models CompanyName to each instance of companyname

                return PartialView();

            }

我不知道从哪里开始,我正在尝试从这个模型中下拉。

我将代码块更新为:

public PartialViewResult SelectCompanyFromDropdown()
        {
            using (var dc = new CompanyListIdDbContext())
            {
                var content = from p in db.Companies
                    select new CompanyListId
                    {
                        Id = p.CoId,
                        CompanyName = p.CompanyName
                    };
                return PartialView(content.ToList());//giving an error
            }
        }

我的看法是:

@model Portal.Models.CompanyListId

@Html.DropDownListFor(m => m.CompanyName, Model.CompanyName)

这似乎也不起作用,我需要从我认为的操作中返回我的模型,这样视图才能正确使用数据。

【问题讨论】:

标签: c# asp.net asp.net-mvc linq


【解决方案1】:

你应该将结果投影到你的班级CompanyListId

var content = from p in db.Companies
              select new CompanyListId
                  { 
                    Id = p.CoId, 
                    CompanyName  = p.CompanyName 
                  };

编辑:

我不确定错误,但您可以尝试:

public PartialViewResult SelectCompanyFromDropdown()
{
    List<CompanyListId> content = null;
    using (var dc = new CompanyListIdDbContext())
    {
        content = (from p in db.Companies
            select new CompanyListId
            {
                Id = p.CoId,
                CompanyName = p.CompanyName
            }).ToList();
    }
    return PartialView(content);
}

【讨论】:

  • 喜欢你的回答。打字比赛!
  • 所以在这种情况下,我的 var content 将是 CompanyListId 的对象,如果我想将此模型返回到我的视图中,我是否只需 return PartialView(content)
  • 它将是IEnumerable&lt;CompanyListId&gt;,您可以在最后使用.ToList() 将其转换为List&lt;CompanyListId&gt;,或者如果要选择单个对象,则在最后使用.First()
  • 更新了我上面的问题。
  • @ZachM.,不太确定这个错误,但我刚刚更新了答案,你可以试试。
【解决方案2】:

你可以像这样选择你的类的一个新实例:

var content = from p in db.Companies
              select new CompanyListId 
              { 
                  Id = p.CoId, 
                  CompanyName = p.CompanyName 
              };

【讨论】:

    猜你喜欢
    • 2018-10-19
    • 2012-03-13
    • 2015-11-04
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多