我正在使用Entity Framework为PatientEntities组建一个WCF数据服务。
我的解决方案需要满足这些要求:
我曾尝试使用DTO,但遇到将ObjectContext映射到DTO的问题,我认为这在理论上是不可能的......或者如果它是太复杂。
我尝试使用自我跟踪实体,但是如果我是正确的话,它们需要来自.edmx文件的元数据,并且这不允许使用不同的属性数据类型。
我还想为我的Entity getter方法添加自定义,以便类型为“string”的属性“MRN”在返回之前需要执行.Replace(“MR~”,string.Empty)。我可以将此添加到getter方法,但问题是Entity Framework将在下次刷新实体类时覆盖它。我可以把它们放在一个永久的地方吗?
我应该使用POCO吗?如何使用WCF数据服务?服务在哪里抓取元数据?
答案 0 :(得分:0)
这绝对是可能的。您需要使用的是QueryView,它允许您控制给定列如何映射到实体上的属性。例如,这是你可以对患者实体做的事情。
<EntitySetMapping Name="Patients">
<QueryView>
select value conceptualnamespace.Patient(p.PatientId,
cast(p.DateOfBirth as Edm.DateTime),
replace(p.Name,'MR~','')
from entitycontainer.Patients as p
</QueryView>
</EntitySetMapping>
我在书中更多地介绍了这个概念。食谱被称为。 15-2。将实体映射到一个或多个表的自定义部分