我正试图从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的实体类,但我不明白这意味着什么。
答案 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>
- 符合搜索条件的客户列表。