使用实体框架和本机sql从vb.net中的sqlserver检索数据
我想使用vb.net、实体框架和本机sql检索Winforms中的数据。我使用了下面的代码,该代码允许我向sql添加数据:使用实体框架和本机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
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文件中访问数据。你有什么想法或教程给我吗?