【问题标题】:Custom class for query查询的自定义类
【发布时间】:2015-04-27 11:05:41
【问题描述】:

我的控制器中有以下查询

public ActionResult Index(int Id)
{
    var People = from a in db.Person
                 select a;

    var Data = from a in db.Member
               where a.Person.PersonId.Equals(Id)
               select new CustomObject
               {
                   ProjectId = a.Project.ProjectId,
                   ProjectName = a.Project.Name,
                   ProjectCustomer = a.Project.Customer,

                   ProjectTechProfile = a.Project.TechProfile.Select(x => new
                   {
                       x.TechId,
                       x.Name,
                       x.Elements
                   }),

                   MemberId = a.MemberId,
                   MemberRole = a.Role,
                   MemberStart = a.Start,
                   MemberEnd = a.End
               };

我正在为我的数据查询创建一个自定义类,但我不知道如何设置 TechProfile 的属性

现在我的自定义类中有这个

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MyProject.Models
{
public class CustomObject
{
    public int ProjectId { get; set; }
    public string ProjectName { get; set; }
    public string ProjectCustomer { get; set; }

    public IEnumerable<TechProfile> ProjectTechProfile { get; set; }

    public int MemberId { get; set; }
    public string MemberRole { get; set; }
    public short? MemberStart { get; set; }
    public short? MemberEnd { get; set; }
}
}

但是有的部分

public IEnumerable<TechProfile> ProjectTechProfile { get; set; }

不起作用,我需要指定 TechId、Name 和 Elements 吗?如果有,怎么做?

更新

TechProfile 类

namespace MyProject.Models
{
using System;
using System.Collections.Generic;

public partial class TechProfile
{
    public int TechId { get; set; }
    public string Name { get; set; }
    public string Elements { get; set; }
    public int ProjectProjectId { get; set; }

    public virtual Project Project { get; set; }
}
}

【问题讨论】:

  • ProjectTechProfile = a.Project.TechProfile.Select(x =&gt; new TekniskProfil() { TechId = x.TechId, ...etc }),
  • 你能展示一下 TechProfile 类的样子吗?
  • 您好,a.Project.TechProfile 是什么?它是 TechProfile 的列表/集合吗?

标签: asp.net-mvc asp.net-mvc-3 model-view-controller


【解决方案1】:
    ...                   
    ProjectTechProfile = a.Project.TechProfile.Select(x => new TechProfile()
                       {
                           TechId = x.TechId,
                           Name = x.Name,
                           Elements = x.Elements
                       },
    ...

【讨论】:

  • 我只想要我的 TechProfile 中的这 3 个特定项目,当我尝试使用 new TechProfile() 时出现错误 Cannot initialize type MyProject.Models.TechProfile with a collection initializer 因为它没有实现System.Collections.IEnumerable
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多