Asp.net 使用实体框架选择所有行

Asp.net 使用实体框架选择所有行,asp.net,entity-framework,Asp.net,Entity Framework,我正在尝试使用实体框架从数据库中选择所有行,以便在将它们发送到表单之前进行操作 var ptx = [modelname].[tablename](); ptx.[tablename].Select(????) 在???中有什么内容 using (ModelName context = new ModelName()) { var ptx = (from r in context.TableName select r); } ModelName是设计器自动生成的类,它继承自Objec

我正在尝试使用实体框架从数据库中选择所有行,以便在将它们发送到表单之前进行操作

var ptx = [modelname].[tablename]();
ptx.[tablename].Select(????)
在???

中有什么内容

using (ModelName context = new ModelName())
{
    var ptx = (from r in context.TableName select r);
}
ModelName是设计器自动生成的类,它继承自ObjectContext。

您可以使用:

ptx.[tablename].Select( o => true)

我使用entitydatasource,它提供了我想要做的一切


_存储库。[tablename].ToList

您可以简单地遍历DbSet context.tablename

foreach(var row in context.tablename)
  Console.WriteLn(row.field);
或者立即评估到您自己的列表中

var allRows = context.tablename.ToList();

实体框架有一个优点,比如:

var users = context.Users; 
这将选择用户表中的所有行,然后您可以使用.ToList等

对于实体框架的新手来说,它类似于:


这将选择表用户中的所有行

您可以使用此代码选择所有行:

C:


我知道这是一篇老文章,但是使用Selectx=>x可以将EF核心或Linq表达式拆分为查询生成器

这对于添加动态条件非常方便

例如:

公共异步任务GetUserGuid userId,字符串userGroup,bool noTracking=false { IQueryable queryable=\u context.Users.Selectx=>x; if!string.IsNullOrEmptyuserGroup queryable=queryable.Wherex=>x.UserGroup==UserGroup; ifnoTracking queryable=queryable.AsNoTracking; return wait wait queryable.FirstOrDefaultAsyncx=>x.userId==userId; }
这里有几种方法,假设我正在对DbConext使用依赖项注入

public class Example
{
    private readonly DbContext Context;

    public Example(DbContext context)
    {
        Context = context;
    }

    public DbSetSampleOne[] DbSamples { get; set; }

    public void ExampleMethod DoSomething()
    {
        // Example 1: This will select everything from the entity you want to select
        DbSamples = Context.DbSetSampleOne.ToArray();

        // Example 2: If you want to apply some filtering use the following example
        DbSamples = Context.DbSetSampleOne.ToArray().Where(p => p.Field.Equals("some filter"))

    }

那么你把它放进什么对象?它会选择所有对象。true-是对象选择的一个条件。能否添加更多解释、参考资料链接等-1这将为每行选择true。它应该是ptx。[tablename]。其中o=>truedoesn不起作用!它询问model.table是什么,显然我在实体填充中放了注意,如果需要特定的列,您可以指定诸如select r.PropertyName之类的内容来获取条目的实际部分。我要说的是,像portalEntity这样的名称非常不前导,通常是SomethingContext,您可以命名变量上下文。这是因为实体框架使用了命名约定,所以通常从DbContext继承。我的语句通常使用var context=this.contextFactory.Create{}@Callumlington:默认情况下,在VS 2015中,如果您通过添加ADO.NET实体数据模型数据库来创建上下文,首先从数据库中选择EF Designer,它会将您的模型命名为Modeln,并且您的上下文类名将为DatabaseNameEntities,这当然是从DBContext继承的。很公平,但我仍然认为这是错误的,或者至少是错误的命名@Callumlington不是一场火灾一场辩论,但在任何地方它似乎都在使用AdventureWorks实体。是的,我看到他们这样做了。我仍然不会改变主意:。我想返回表中的所有行,但不返回愚蠢的.Whererow=>row.Id>0,并且知道这很简单。完美的谢谢。什么是_repository?@Andrew _repository是实体框架数据上下文的OP类的名称。
var allStudents = [modelname].[tablename].Select(x => x).ToList();
public class Example
{
    private readonly DbContext Context;

    public Example(DbContext context)
    {
        Context = context;
    }

    public DbSetSampleOne[] DbSamples { get; set; }

    public void ExampleMethod DoSomething()
    {
        // Example 1: This will select everything from the entity you want to select
        DbSamples = Context.DbSetSampleOne.ToArray();

        // Example 2: If you want to apply some filtering use the following example
        DbSamples = Context.DbSetSampleOne.ToArray().Where(p => p.Field.Equals("some filter"))

    }