2013-06-10 2 views
2

Привет, как я могу получить доступ к объектам, сгенерированным инфраструктурой сущностей, из внешнего интерфейса? из моей бизнес-логики я могу получить к нему доступ, но я не могу получить к нему доступ из интерфейса.Чтение объектов структуры сущности из интерфейса

Могу ли я перенести сущности из проекта каркаса сущности на уровень бизнес-логики или воспроизвести их в нем?

Я думаю, что должен быть простой способ сделать это, потому что я не могу поверить в то, что Microsoft разработала шаблон в слое данных whitch, на который следует ссылаться непосредственно ui, это то, что люди делают, когда им 8 лет

+0

Я не знаю, как перемещать enities, что я должен сделать, чтобы переместить их?, Это то, что я просил – sparrows81

+0

Ничто не мешает вам отображать объекты, выбранные контекстом в DataGridView, например. Самое лучшее для вас зависит от многих вещей, о которых вы не говорите. Сложность, web/winforms/WPF/OData, чтобы назвать несколько. Черт возьми, возможно, EF даже не лучший вариант. Обычно изучение примеров приложений работает лучше, например. [this one] (http://code.msdn.microsoft.com/ASPNET-MVC-Application-b01a9fe8) –

+0

Это совершенно правильный вопрос. Много проектной работы хорошо с архитектурой DTO, и, безусловно, возможно использование EF, хотя, возможно, проще использовать код в первую очередь (см. Мой ответ ниже). В качестве альтернативы некоторым нравится проксировать классы данных, тем самым полностью скрывая реализацию данных от пользовательского интерфейса. – Jay

ответ

0

Я проведу вас через это с перспективы Entity Framework 5/VS2012. Однако другие версии должны работать аналогичным образом.

Предполагая, что из вышеуказанного вы имеете три проекта (data/business/ui) и контекстный контекст объекта (.edmx) объекта в вашем проекте данных.

  1. Создайте новый проект (класс библиотеки) для вашего решения. Этот проект будет размещать объекты вашей организации (POCO), поэтому назовите его соответствующим образом.

  2. Создать ссылку на проект из проекта данных в ваших новых объектов проекта

  3. Создать новый элемент в новом проекте (EF 5.x DbContextGenerator)

  4. Удалить файл Context.tt в вновь созданный элемент.

  5. Открыть другой .tt файл и изменить строку, которая определяет inputFile для отображения на вашем EDMX-файл

    const string inputFile = @"../<dataprojectname>/<mydata>.edmx";

  6. В вашем проекте данных расшириться «MyData» EDMX-и местонахождение объектов шаблон с именем «mydata» .tt (вы узнаете, что он правильный, потому что он расширяется, чтобы показать список ваших сущностей) и удалить его.

  7. Измените файл mydata .Context.tt: прокрутите страницу вниз до тех пор, пока не увидите статуты using. Добавьте список использований с пространством имен ваших объектов, созданным на шаге 3.

  8. Теперь вы можете создавать ссылки из своих проектов и проектов пользовательского интерфейса непосредственно на проект ваших объектов.

Надеюсь, это поможет.

Смежные вопросы