选择所有行使用实体框架

Cal*_*ton 39 asp.net entity-framework

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

var ptx = [modelname].[tablename]();
ptx.[tablename].Select(????)
Run Code Online (Sandbox Code Playgroud)

什么在????

Cal*_*ton 58

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

_repository.[tablename].ToList();

  • 什么是_repository? (2认同)

Irf*_*Irf 32

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

var users = context.Users; 
Run Code Online (Sandbox Code Playgroud)

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


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

PortalEntities context = new PortalEntities();
var users = context.Users;
Run Code Online (Sandbox Code Playgroud)

这将选择 Table中的所有行User

  • 我会说像"PortalEntities"这样的名字是相当错过领先的,通常它会是`SomethingContext`而你会命名变量上下文.这是因为实体框架使用了命名约定,所以通常你会继承`DbContext`.我的语句通常是`using(var context = this.contextFactory.Create()){}` (3认同)
  • 是的,我看到他们这样做了.我仍然永远不会改变主意:). (2认同)

Mik*_*sen 21

怎么样:

using (ModelName context = new ModelName())
{
    var ptx = (from r in context.TableName select r);
}
Run Code Online (Sandbox Code Playgroud)

ModelName是由设计者自动生成的类,它继承自ObjectContext.


小智 11

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

C# :

var allStudents = [modelname].[tablename].Select(x => x).ToList();
Run Code Online (Sandbox Code Playgroud)


ave*_*ore 5

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

foreach(var row in context.tablename)
  Console.WriteLn(row.field);
Run Code Online (Sandbox Code Playgroud)

或立即评估您自己的清单

var allRows = context.tablename.ToList();
Run Code Online (Sandbox Code Playgroud)