选择所有行使用实体框架

时间:2012-06-05 15:30:10

标签: asp.net entity-framework

我正在尝试使用实体框架从数据库中选择所有行,然后再将它们发送到表单

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

????

中的内容

8 个答案:

答案 0 :(得分:52)

我使用了entitydatasource,它提供了我想要做的所有事情。

_repository.[tablename].ToList();

答案 1 :(得分:27)

实体框架有一个美好的东西,如:

var users = context.Users; 

这会选择表格User中的所有行,然后您就可以使用.ToList()等。

对于实体框架的新手,它就像:

PortalEntities context = new PortalEntities();
var users = context.Users;

这将选择表User

中的所有行

答案 2 :(得分:20)

怎么样:

using (ModelName context = new ModelName())
{
    var ptx = (from r in context.TableName select r);
}

ModelName是设计器自动生成的类,它继承自ObjectContext

答案 3 :(得分:5)

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

foreach(var row in context.tablename)
  Console.WriteLn(row.field);

或立即评估到您自己的列表中

var allRows = context.tablename.ToList();

答案 4 :(得分:1)

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

C#:

var allStudents = [modelname].[tablename].Select(x => x).ToList();

答案 5 :(得分:0)

我知道老帖子,但是使用Select(x => x)可以将EF Core(甚至Linq)表达式拆分成查询生成器。

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

例如:

public async Task<User> GetUser(Guid userId, string userGroup, bool noTracking = false)
{
    IQueryable<User> queryable = _context.Users.Select(x => x);

    if(!string.IsNullOrEmpty(userGroup))
        queryable = queryable.Where(x => x.UserGroup == userGroup);

    if(noTracking)
        queryable = queryable.AsNoTracking();

    return await queryable.FirstOrDefaultAsync(x => x.userId == userId);
}

答案 6 :(得分:0)

这里有几种方法(假设我正在对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"))

    }

答案 7 :(得分:-1)

您可以使用:

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