C#Linq DBML类包装器

时间:2011-07-21 03:40:33

标签: c# linq

我有一个基本上扩展了linq类的泛型类。这意味着我不能只扩展linq类,我需要一个单独的泛型类。

public LinqCake // Linq Class from DBML
{
     string Name;
     FrostingType Type;
}

public class Cake<T> : LinqCake where T is FrostingType
{
   public bool SomeProperty 
   {
          get 
          {
             return LinqCake.Type == FrostingType;
          }
   }          

   // I basically want to do something like this,
   // but I obviously can't because this code isn't valid
   public Cake (int ID)
   {
           this = db.LinqCakes.Where(x=>x.ID = ID).Single();
   }
}

public void Main()
{
   Cake<Chocolate> ChocolateCake = Cake<Chocolate>(7);
   Console.WriteLine(ChocolateCake.SomeProperty);
}

我基本上想要使用数据库中的信息填充Cake的继承类LinqCake。我是否可以通过隐式演员来实现这一目标?

我如何实现我想要做的精神?我可以想到两种方式来做这件事; A)添加一个私有的LinqCake成员B)基本上只是在LinqCake类的每个属性中读入Cake类的重复属性。

我觉得有更好的解决方案,任何想法?

1 个答案:

答案 0 :(得分:0)

如果我理解您的问题,请在此处进行投影,其中涉及将类型LinqCake中的字段映射到Cake类型的字段。您无法将LinqCake设置为Cake,因为它未在类型层次结构中指定。{/ p>

也许像AutoMapper这样的工具可以帮到你。