C# ASP C中的虚拟公共方法#

C# ASP C中的虚拟公共方法#,c#,asp.net-mvc,entity-framework-4,C#,Asp.net Mvc,Entity Framework 4,我有点好奇是否有更好的方法来完成下面的任务。基本上,我有两门课。A类和B类。ClassA有一个指向ClassB的外键。我想从ClassB中确定引用ClassB的ClassA中的所有元素。希望这个小例子有助于理解: 同样值得注意的是,我试图模仿ASP.NET MVC 4的书中的“约定”: (在实体文件夹中) 公共类ClassA { [关键] 公共int Id{get;set;} 公共类B MyClassB{get;set;} } 公共B类 { [关键] 公共int Id{get;set;} 公共字

我有点好奇是否有更好的方法来完成下面的任务。基本上,我有两门课。A类和B类。ClassA有一个指向ClassB的外键。我想从ClassB中确定引用ClassB的ClassA中的所有元素。希望这个小例子有助于理解:

同样值得注意的是,我试图模仿ASP.NET MVC 4的书中的“约定”:

(在实体文件夹中)

公共类ClassA
{
[关键]
公共int Id{get;set;}
公共类B MyClassB{get;set;}
}
公共B类
{
[关键]
公共int Id{get;set;}
公共字符串标题{get;set;}
虚拟公共IEnumerable类(IClassA a)
{返回a.ClassA.Where(..).AsEnumerable();}
}
(在摘要文件夹中)

公共接口IClassA
{
IQueryable类A{get;set;}
}
公共接口IClassB
{
IQueryable类B{get;set;}
}
我看到的问题是需要将我拥有的对象的一个实例(在本例中是ClassA的一个实例)传递给方法ClassAs


进一步考虑一下,可能还可以在接口中创建定义,然后在具体文件夹中声明。什么是“最佳”如何做到这一点?了解EF在连接方面的工作原理仍然是一个谜,任何有趣的资源都将不胜感激。

如果我理解正确,你就不能在
ClassB
中列出
列表吗:

public virtual List<ClassA> ClassAs { get; set; }
公共虚拟列表类{get;set;}

这将由EF填充,并将包含所有在
MyClassB
中引用
ClassB
ClassA
,感谢这里的选项。有没有一种简单的方法来测试类似的东西,而不需要EF的数据库?我问这个问题的原因是因为我花了大约一个小时构建另一个app尝试测试这些连接。这里有一个链接到我的要点,它提供了我刚刚做的测试的基础。我发现了一篇非常有趣的文章,讨论了更紧密绑定的EF问题的测试,有点像这篇。我想我遇到这个问题的原因是公共虚拟不工作,因为真正的“EF”不存在,所以这种事情不可能使用简单的moq进行测试。它应该是
公共虚拟
虚拟公共
不会编译。。。
public interface IClassA
{
   IQueryable<ClassA> ClassA { get; set; }
}

public interface IClassB
{
   IQueryable<ClassB> ClassB { get; set; }
}
public virtual List<ClassA> ClassAs { get; set; }