使用ExecuteQuery()与实体框架,实体类

时间:2011-01-16 17:36:51

标签: asp.net vb.net entity-framework executequery

我正试图从ASP Classic跳到asp.net。我已经按照教程来获取Entity Framework和LINQ以连接到我的测试数据库,但是我很难搞清楚ExecuteQuery()。我认为问题是我的数据库需要一个“实体类”,但我无法弄清楚如何做到这一点。这是我的简单代码:

Dim db as New TestModel.TestEntity
Dim results AS IEnumerable(OF ???) = db.ExecuteQuery(Of ???)("Select * from Table1")

从微软示例网站,他们使用名为Customers的实体类,但我不明白这意味着什么。

1 个答案:

答案 0 :(得分:1)

Entity Framework附带一个可视化设计器。在该设计器中,您连接到现有数据库,然后从数据库中选择要使用的所有表(以及可能的视图)。

根据该选择,EF会为每个表生成一个实体类,例如如果您有一个Customers表,那么您将获得一个Customer课程,如果您有一个Products表,则会获得一个Product课程。

这些类代表(默认情况下)您的表结构1:1 - 例如表中的每一列都会被转换为类中的属性。

一旦你有了这个,你就不再处理SQL语句和像ExecuteQuery()这样的东西了 - 你把它留给EF去处理。

你只需要问你需要什么,例如来自特定州的所有客户:

var ohioCustomers = from c in dbContext.Customers
                    where c.State = "OH"
                    select c;

此语句将返回IEnumerable<Customer> - 符合搜索条件的客户列表。