我正在尝试使用实体框架从数据库中选择所有行,然后再将它们发送到表单
var ptx = [modelname].[tablename]();
ptx.[tablename].Select(????)
????
中的内容答案 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)