C# 如何在我的具体案例中实现IEnumerable?

C# 如何在我的具体案例中实现IEnumerable?,c#,entity-framework,ienumerable,C#,Entity Framework,Ienumerable,以前有人问过我的问题,但即使在之前的帖子中我也无法回答。很明显,我没有正确地理解它 我让VisualStudio生成一个ADO NET实体框架模型,首先从数据库中生成代码。在数据库中,我有一个名为finishs的表(用来保存游戏的每个可能的结尾,只是为了澄清)。这一切都很好。现在我需要实现IEnumerable,以便能够遍历它。到目前为止,我什么都懂。我似乎无法做到这一点。也许有人能把他们的光芒照在它上面,这样我就能一劳永逸地理解它 VisualStudio生成了两个类 Checkoutlist

以前有人问过我的问题,但即使在之前的帖子中我也无法回答。很明显,我没有正确地理解它

我让VisualStudio生成一个ADO NET实体框架模型,首先从数据库中生成代码。在数据库中,我有一个名为finishs的表(用来保存游戏的每个可能的结尾,只是为了澄清)。这一切都很好。现在我需要实现IEnumerable,以便能够遍历它。到目前为止,我什么都懂。我似乎无法做到这一点。也许有人能把他们的光芒照在它上面,这样我就能一劳永逸地理解它

VisualStudio生成了两个类

Checkoutlist.cs:

namespace Bull.Models
{
using System;
using System.Data.Entity;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Collections;

public partial class CheckoutList : DbContext, IEnumerable
{
    public CheckoutList()
        : base("name=DatastoreConnection")
    {
    }

    public virtual DbSet<Finish> Finishes { get; set; }


    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Finish>()
            .Property(e => e.First)
            .IsFixedLength();

        modelBuilder.Entity<Finish>()
            .Property(e => e.Second)
            .IsFixedLength();

        modelBuilder.Entity<Finish>()
            .Property(e => e.Third)
            .IsFixedLength();
    }
}
}

所以问题是,;在我的案例中如何实现IEnumerable?非常感谢您的帮助(可能还有解释)。

尝试使用以下方法:

public IEnumerable<Finish> Get()
{
     var query = base.Set<Finish>();
     return query.ToList();
}
public IEnumerable Get()
{
var query=base.Set();
返回query.ToList();
}

“先从数据库编码”先编码是一种从代码而不是从数据库编码生成数据库的方法。我不明白,
完成后
已经实现了
IEnumerable
。您的
CheckoutList
DbContext
,它不应该实现
IEnumerable
。谢谢威震天。所以你的意思是,我一开始使用的方法是错误的,这是我的问题吗?@威震天代码一开始用词不当。后来,EF团队将其重命名为“基于代码的建模”,因为它支持两个方向(请参阅)。您还没有显示您的
签出
-类。您的
CheckoutList
DbContext
,因此它是您不能枚举的数据库实例,如果您想枚举所有
Finish
您必须使用
finishs
属性:
使用(var db=new CheckoutList())foreach(db.Finishes中的Finish f)Console.WriteLine({0}:{1}:{2}(一、二、三)谢谢@威震天这正是我要找的!很高兴能帮上忙
public IEnumerable<Finish> Get()
{
     var query = base.Set<Finish>();
     return query.ToList();
}