POCO 的 EF 中的自定义数据访问
我目前正在编写一个 WCF 数据服务,旨在以预定义的标准结构从任何数据库中提取数据。
我正在考虑使用 POCO 实体。我可以在 EF 设计器上设计我的实体并从中生成 POCO 类,但我很难理解的是如何编写数据访问层并将其注入到 DBContext 中。
因此,对于每个不同的数据库,我将有一个数据访问层,它将从数据库甚至 xml 文件检索数据并将数据映射到我的 POCO 实体。
我不确定这是否可以实现。
POCO 类将成为我向世界公开的标准结构。 我看不到任何地方可以编写自定义 SQL 查询来从数据库中提取数据,然后在 POCO 类中设置数据。 POCO 类与任何数据库表都不匹配,因此我明确需要将数据库字段映射到 POCO 类,但我不确定如何使用 POCO 在实体框架中执行此操作。
我相信 POCO 是写入选项,但在数据访问层和从数据库到 POCO 类的映射方面苦苦挣扎。
我见过的所有示例都讨论了将 EF 直接连接到现有数据库。这意味着 EF 结构必须与数据库的结构相匹配。我想要的是一个可以从多个数据库检索数据的 EF/POCO 结构。这些数据库不具有相同的结构,但我需要手动从这些数据库中检索数据并将其转换为 POCO 类结构。我不一定想一次从多个数据库获取数据,而是从单个数据库获取数据,但想对任何数据库使用相同的模型 - 所以我想我必须为每个数据库编写一个自定义 DAL,它从数据库获取数据并将数据转换为 POCO 模型结构。
如果有人能帮助我,我将非常感激。
顺便说一句,我是 EF 的新手,所以请耐心等待。
I am currently writing a WCF data service that is meant to extract data from any database in a predefined standard structure.
I was thinking of using POCO entities. I can design my entities on EF designer and generate the POCO classes from it but the bit I struggling to understand is how to write data access layer and inject it into the DBContext.
So for each different database, I'll have a data access layer that will retrieve data from a database or even an xml file and map the data to my POCO entities.
I am not sure if this is achievable at all.
The POCO classes will be my standard structure to expose to the world.
I can't see anywhere to write custom sql queries to extract data from a DB and then set the data in the POCO classes. The POCO classes do not match any of the database tables so I explicitly need to map database fields to the POCO classes but I am not sure how to do this in Entity Framework using POCO.
I believe POCO is the write option but struggling on the data access layer and mappings from database to POCO classes.
All the samples I have seen talk about connecting the EF to an existing database directly. Meaning the EF structure has to match the structure of the database. What I want is a single EF/POCO structure that can retrieve data from multiple databases. These databases do not have the same structure but I need to manually retrieve data from these databases and transform it into the POCO classes structures. I do not necessarily want to get data from multiple databases at once but from a single DB but want to use the same model for any database - So I guess I have to write a custom DAL for each database which gets the data from a DB and transform the data into the POCO model structure.
I would really appreciate if anyone could help me.
By the way I am new to EF so please be patient.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您是否遵循了此教程它向您展示了如何从数据库创建模型类并对其进行查询?
另外 这里是一个关于使用 EF 代码优先的精彩教程,您可以在其中首先构建 POCO 类,然后它会为您生成数据库。读得很好:)。
Have you followed this tutorial which shows you how to create model classes from a DB and query against them?
Also here is a great tutorial on using EF code-first, in which you build your POCO classes first, and it generates the DB for you. Great read :).