使用三个模型在Linq中添加ICollection

时间:2014-03-06 21:07:36

标签: c# linq entity-framework asp.net-web-api

嗨我有三个表的实体,这些类是

 public partial class pro_type
    {
        public pro_type()
        {
            this.pro = new HashSet<pro>();
        }

        public int pro_id { get; set; }
        public string description { get; set; }    
        public virtual ICollection<pro> pro { get; set; }
    }

 public partial class pro
    {
        public pro()
        {
            this.project_discussion = new HashSet<p_dis>();
        }

        public int pro_id { get; set; }
        public string name { get; set; }
        public System.DateTime ts { get; set; }
        public int p_type_id { get; set; }  
        public virtual ICollection<p_disc> p_disc { get; set; }
        public virtual ICollection<p_type> p_type { get; set; }
    }
}

  public partial class p_dis
    {
        public int p_disc_id { get; set; }
        public int pro_id { get; set; }
        public string message { get; set; }      
        public virtual pro pro { get; set; }
    }
}

我有以下linq语句从这三个类中创建一个对象。

  var pView= (from c in db.p_disc
                               select new pView
                               {
                                 name=c.pro.name,
                                 pro_id=c.pro.pro_id,                           
                                 message=c.message,
                                 pro_type=typeof(ICollection<c.pro.p_type>)
                               }).Take(7);
            return pView;

我一直在pro_type = typeof(ICollection)上说intellisense说.. “无法隐式转换类型system.Type到system.collections.generic.icollection”

请告诉我如何修复它。谢谢

1 个答案:

答案 0 :(得分:0)

错误非常明显。

typeof(ICollection)不会创建ICollection&lt;&gt; - 它为您提供了一个System.Type对象,其中包含您的类型的详细信息。

System.Type类的MSDN:
http://msdn.microsoft.com/en-us/library/system.type(v=vs.110).aspx