从Icollection获取属性(ASP.NET MVC)

时间:2017-05-16 11:38:06

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

我有后端需要从表中获取FIO

我尝试编写代码,这就是我所拥有的

 public ActionResult Profile_Data_Questions()
    {
        var dataforprofile = TempData["FIO"];
        var profiledata = db.QuestionBlocks
            .Where(x => x.Interview.Interwiers == dataforprofile)

    }

InterwiersIColection

这是Interwiers的模型

 [Key]
    public int Interwier_id { get; set; }
    [Display(Name = "ФИО")]
    public string FIO { get; set; }
    public string Email { get; set; }
    [Display(Name = "Телефон")]
    public string Telephone { get; set; }
    [Display(Name = "День рождения")]
    [DataType(DataType.Date)]
    public string Birthday { get; set; }
    [Display(Name = "Город")]
    public string City { get; set; }
    [Display(Name = "Зарплата")]
    public string Salary { get; set; }
    [Display(Name = "Английский")]
    public string English { get; set; }
    public Nullable<int> Interview_Id { get; set; }
    [Display(Name = "Статус")]
    public string Status { get; set; }

    public virtual Interview Interview { get; set; }
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<Link> Links { get; set; }

我如何获得FIO财产?

2 个答案:

答案 0 :(得分:1)

我假设dataforprofile是一个字符串或一个int / enum,...你可以搜索那些prop设置为dataforprofile的项目。

var profiledata = db.QuestionBlocks
        .Where(x => x.Interview.Interwiers.Any(y=> y.prop == dataforprofile))

上面的代码将为您提供所有问题块,其中包含一个或多个访谈者的访谈,其中道具设置为dataforprofile var。

答案 1 :(得分:0)

哎呀我不确定你的问题是什么,由于没有积累足够的代表,我还不能要求澄清。所以这里:

您的集合中不包含访问者对象,您需要将请求转换为对象类型,如下所示:

var targetList = origList
  .Select(x => new TargetType() { SomeValue = x.SomeValue })
  .ToList();

或者,如果问题更简单,我会链接到另一个回答我对你问题的另一种解释的问题:

How to expose a collection property?