Как разобрать класс Entity в класс Custom Entity с расширением? - PullRequest
1 голос
/ 13 января 2012

Я хочу написать собственное расширение класса.У меня есть класс EDMX, но я хочу проанализировать класс CUSTOM.Например, Customer Класс имеет 3 свойства (идентификатор, имя, фамилия), с другой стороны, мой пользовательский Customer Класс имеет 3 свойства (идентификатор, имя, фамилия).Я хочу проанализировать 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>
}

Ответы [ 2 ]

1 голос
/ 13 января 2012

Что-то вроде:

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();
}

Если VisitorAdvertise унаследовано от базовой сущности с идентификатором, тогда вы можете основывать ограничение на этом, а не открывать что-либо производное от него. Извините, я неправильно понимаю синтаксис, я не кодирую это в VS.Net

0 голосов
/ 13 января 2012

Посмотрите на Automapper: http://automapper.codeplex.com/

...