2012-01-13 61 views
1

我想寫一個自定義的類擴展。我有EDMX類,但我想解析CUSTOM類。例如Customer類具有在另一方面我的自定義類Customer有3個屬性(ID,名字,姓氏)3個屬性(ID,名字,姓氏)。我想分析List<Customer>List<MyCustomer>使用的擴展,但我怎麼能做到這一點?如何使用擴展分析實體類到自定義實體類?

public partial class MyVisitorAdvertisement 
{ 
    public int ID { get; set;} 
    public int VID { get; set;} 
    public int TID { get; set;} 
    public string Detail{ get; set;} 
    public DateTime Date { get; set;} 
    public DateTime LastDate { get; set;} 

    public MyVisitorAdvertisement() 
    { 
    //constructor 
    } 

    public List<MyVisitorAdvertisement> ListByID(int ID) 
{ 
    List<MyVisitorAdvertisement> visitors = new List<MyVisitorAdvertisement>(); 
    using (var Ctx = new DomainRepository<VisitorAdvertisement>(new ProposalsEntities())) 
    { 
     foreach (var visitor in Ctx.Find<VisitorAdvertisement>(q => q.ID == ID).ToList()) 
     { 
      MyVisitorAdvertisement visitoradvertisement = new MyVisitorAdvertisement(); 
      visitoradvertisement.ID = visitor.ID; 
      // i dislike to do it. i think that how to make it a extention?  

      visitors.Add(visitoradvertisement); 
     } 
     return visitors; 
    } 
} 
} 

我想要的分機:

public static List<TResult> (this IEnumerable<T> mylist) where TResult,T: class 
{ 
    return //mylist parse to List<TResult> 
} 

回答

1

喜歡的東西:

public static List<TResult> ListByID<TResult>(this IEnumerable<T> mylist) where TResult : VisitorAdvertisement where T: class 
{ 
    return Ctx.Find<TResult>(q => q.ID == ID).SelectMany(a => new TResult{ Id = a.Id}).ToList(); 
} 

如果VisitorAdvertisement從有基礎的實體繼承在它的ID,那麼你可以基於這一點的可靠性而是開放任何派生的東西。對不起,我不斷得到語法錯了,我不是在VS.Net

+0

不工作語法錯誤編碼:我們可以添加約束到一個通用的方法是什麼? – Penguen 2012-01-13 14:20:46

+0

對不起,剪切和粘貼錯誤;)是的,你可以 – jolySoft 2012-01-13 14:24:13

+0

錯誤:類型或命名空間名稱Tresult'找不到(是否缺少using指令或程序集引用) – Penguen 2012-01-13 14:28:24

相關問題