使用实体框架和本机sql从vb.net中的sqlserver检索数据

使用实体框架和本机sql从vb.net中的sqlserver检索数据,vb.net,winforms,entity-framework-4,native-sql,Vb.net,Winforms,Entity Framework 4,Native Sql,我想使用vb.net、实体框架和本机sql检索Winforms中的数据。我使用了下面的代码,该代码允许我向sql添加数据: Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim db As New SampleDBEntities Dim bs As New BindingSource bs.DataSource = db.Cars.Local Data

我想使用vb.net、实体框架和本机sql检索Winforms中的数据。我使用了下面的代码,该代码允许我向sql添加数据:

Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim db As New SampleDBEntities
    Dim bs As New BindingSource
    bs.DataSource = db.Cars.Local
    DataGridView1.DataSource = bs
End Sub
但我不知道如何启动查询从数据库检索数据。假设我想从名为SampleDB的数据库中的Cars表中获取所有记录。 所以我需要
“从汽车中选择*”

但是如何使用此查询?

获取所有的汽车:

Using db As New SampleDBEntities
  Dim cars = db.Cars.ToList
End Using
若要按类型获取所有汽车,请在该实体中输入“类型”字段

Using db As New SampleDBEntities
  Dim mazdaCars = db.Cars.Where(Function(c) c.Type = "Mazda").ToList
End Using

实体框架是为LINQ和Lambda构建的。确保关闭/处置实体容器对象

要么直接使用SQL(通过SQL或存储过程)并使用SqlConnection、SqlCommand和DataReader或DataAdapter与服务器通信,要么正确使用已配置的实体框架

我不是很喜欢VB.Net,所以它是伪代码,但您需要处理EF上下文

差不多

using (myEntityModel context = new myEntityModel()) 
{
    MyResult = context.Cars.where(c => c.model == "myModel").ToList();
}

您可以直接使用SQL(通过SQL或存储过程)并使用SqlConnection、SqlCommand和DataReader或DataAdapter与服务器通信,也可以正确使用已配置的实体框架并与之对话。您已经在项目中设置了EF吗?是的,我已经在项目中设置了EF。我得到了一个解决方案
context.Cars.SqlQuery(“SELECT*FROM Cars”).ToList()
。无论如何,感谢您尝试回答我的问题。@user2524507通过在EF中输入SqlQuery,您完全忽略了EF本身的要点。它被设计成您的dotNet代码和SQLServer(或类似程序)之间的桥梁。如果您想通过注入SQL语句直接访问SQL,您应该查看System.Data中的SqlClient程序集,并使用诸如SqlConnection和SqlCommand之类的类。我得到了一个解决方案
context.Cars.SqlQuery(“SELECT*FROM Cars”).ToList()
。谢谢你回答我的问题。嘿@OneFineDay,我正在用EF和VB.NET启动一个Windows窗体项目,我不知道如何从我的VB文件中访问数据。你有什么想法或教程给我吗?