gpt4 book ai didi

c# - ObjectContext.Translate - 使用不同的属性名称

转载 作者:太空宇宙 更新时间:2023-11-03 13:46:52 25 4
gpt4 key购买 nike

我正在使用 Entity Framework 并调用存储过程,如下所述:http://msdn.microsoft.com/en-us/data/jj691402.aspx在“使用代码访问多个结果集”下

执行存储过程后,我使用 ObjectContext.Translate 方法将结果放入数据协定对象,这要求数据协定属性与返回的数据相匹配。

有什么方法可以让我使用不同的属性名称,但仍然让 Translate 方法正确映射它们?

例如,我有一个获取国家列表的过程,它返回以下列:listID、listName。我希望我的数据契约(Contract)对象只有 ID 和名称,而不是这些名称。

我尝试将 Name 参数添加到 DataMember 属性,但这没有用。

[DataMember(Name="listID")]
public string ID { get; set;}

最佳答案

不,你不能这样做。 Translate 遍历读取器内部的数据集,并将其直接映射到您传入的实体中定义的属性。它不知道数据成员注释。这是有道理的,因为数据注释用于序列化,您的数据层不需要知道这一点。

我建议您在具有直接映射到您调用的查询的属性的实体上调用 Translate。然后,让您的 DataMember 定义将转换为序列化的名称。例如,如果您的查询返回 listID 和 listName:

[DataMember("ID")]
public string listID { get; set; }

[DataMember("Name")]
public string listName { get; set; }

关于c# - ObjectContext.Translate - 使用不同的属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15038285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com