我是设计数据库的新手,而不是首先使用像Linq到实体代码这样的新功能,我想自己实现更低级别的东西。
如果我有一个Foo类,它可以包含任何其他数量的Foo,它可能看起来像这样:
class Foo
{
int FooId;
List<Foo> containedFoos;
...
}
假设Foo表看起来像
FooId, FooName, ContainingFooId (Foreign key to same table)
如果我先使用代码并检索了所有我的Foos,那么它们的containsFoos列表会自动填充给我。
我的问题是,这是在应用程序方面完成的(只需从Foo表中执行直接select
,并在C#中编写逻辑以构造Foo,找到其包含的所有内容,构建列表等)
或者,SQL Server是否可以以更有用的方式返回数据?比如以某种方式将每个Foo及其包含的项目一起返回?
答案 0 :(得分:1)
不,SQL Server不会返回这样的数据。您必须手动创建对象并填充它们以模仿Code First填充对象的方式。
仅凭这个原因使EF对项目一开始就非常有吸引力(对我而言)。它节省了很多时间。