我正在使用实体框架为 PatientEntities 组合一个 WCF 数据服务。
我的解决方案需要满足这些要求:
- 实体 Patient 的属性 DateOfBirth 作为字符串存储在 SQL Server 中。如果实体类不使用“字符串”类型而是使用 DateTime 类型,那将是理想的。(我希望这是可能的,因为我们正在从存储层中抽象出来)。哪里可以设置转换机制来转换日期时间/字符串,以便实体和 SQL Server 同步?我无法更改存储层的结构,所以我必须解决它。
- 需要使用 WCF 数据服务(只读,因此无需保存更改),因为客户端将能够使用 LINQ 表达式来使用该服务。他们可以根据所需的任何给定查询场景生成结果,而不受 GetPatient(int ID) 等单一方法的限制。
我曾尝试使用 DTO,但遇到了将 ObjectContext 映射到 DTO 的问题,我认为这在理论上是不可能的……或者如果是的话,太复杂了。
我尝试使用自我跟踪实体,但如果我是正确的,它们需要来自 .edmx 文件的元数据,并且这不允许使用不同的属性数据类型。
我还想为我的 Entity getter 方法添加自定义,以便在返回之前执行类型为“string”的属性“MRN”。Replace("MR~", string.Empty)。我可以将它添加到 getter 方法,但问题是实体框架将在下次刷新实体类时覆盖它。有没有固定的地方可以放这些?
我应该改用 POCO 吗?这将如何与 WCF 数据服务一起使用?服务将在哪里获取元数据?