ASP C#中的虚拟公共方法

时间:2013-07-22 20:46:27

标签: c# asp.net-mvc entity-framework-4

如果有更好的方法可以实现以下目标,我有点好奇。基本上,我有两节课。 ClassA和ClassB。 ClassA具有ClassB的外键。我想从ClassB中确定ClassA中引用ClassB的所有元素。希望这个小例子有助于更有意义:

值得注意的是,我试图模仿ASP.NET MVC 4的书,就“约定”而言:

(在实体文件夹中)

public class ClassA
{
   [Key]
   public int Id {get; set;}
   public ClassB MyClassB {get;set;}
}

public class ClassB
{
   [Key]
   public int Id {get; set;}
   public String title {get; set;}

   virtual public IEnumerable<ClassA> ClassAs(IClassA a)
   { return a.ClassA.Where(....).AsEnumerable(); }
}

(在抽象文件夹中)

public interface IClassA
{
   IQueryable<ClassA> ClassA { get; set; }
}

public interface IClassB
{
   IQueryable<ClassB> ClassB { get; set; }
}

我看到的问题是需要传递我拥有的对象的实例(在这种情况下是ClassA的实例到方法ClassAs。

进一步考虑这个问题,可能还可以在界面中创建定义,然后在具体文件夹中声明它。什么是“最好”的方式呢?了解EF在连接方面的工作原理仍然有点神秘,任何有趣的资源也会受到赞赏。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你不能只在List<ClassA>ClassB

public virtual List<ClassA> ClassAs { get; set; }

这将由EF填充,并包含ClassA中引用ClassB的所有MyClassB