Использование ExecuteQuery () с платформой сущностей, классом сущностей - PullRequest
1 голос
/ 16 января 2011

Я пытаюсь перейти с 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")

На примере сайта Microsoft они используют класс сущности «Клиенты», но я не понимаю, что это значит.

1 Ответ

1 голос
/ 16 января 2011

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> - список клиентов, который соответствует вашим критериям поиска.

...