c# - 你如何在 iBatis 中映射一个 List<string>?

标签 c# mapping ibatis.net

我有这样一个类

public SomeClass
{
   private List<string> _strings = new List<string>();

   public IEnumerable<string> Strings
   {
      {  get return _strings; }
   }
}

我将如何为 _strings 做映射?

我试过了,但它提示找不到 List 类型处理程序,如果我将它映射为对象,它不会提示。

<result property="_strings" column="value" />

所以我在谷歌上搜索并找到了这个解决方法(最初是针对 Java 问题,不知道它是否适用于 C#)

<result property="_strings" resultMapping="someMapping.StringList"/>

<resultMap id="StringList" class="System.String">
  <result property="" column="Value"/>
</resultMap>

这至少可以让测试运行,并且它可以正常返回我的对象​​的其余部分,并且我的列表具有正确数量的条目,除了它们都是空白的。

我认为问题是 property 属性是空白的,但我不确定那里应该放什么。 (我也尝试过使用“值(value)”,但那也没有用)。这似乎应该简单得多,我只是忽略了一些明显的东西。

谢谢。

最佳答案

使用 IBatis 的自动结果映射。这是 Java 中的解决方案,您可以轻松地将其映射到 C#。 这是你的 sql 映射:

<code><sqlMap namespace="Users"></code>
<code><select id="names" resultClass="java.lang.String"></code>
        select first_name as firstName from user
<code></select></code>
<code><sqlMap></code>

然后你可以这样调用它:

List<code><String></code> userNames = (List<code><String></code>)sqlMap.queryForList("Users.names");

因此您不必创建具有一个属性的自定义类型来执行此操作。

关于c# - 你如何在 iBatis 中映射一个 List<string>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1127992/

相关文章:

c# - 如何将 xsd 转换为具有冗余的 cs? (OTA XML 出版物)

c# - 如何序列化 IList<T>?

pandas - 以不同的时间间隔分布 Pandas 数据框中的值

java - MyBatis - 一对多 - 未为映射列设置值

java - Mybatis 无 Getter 属性

c# - "Request entity too large"和锁定的配置部分

c# - 使用 ajax 渲染局部 View

c# - 通过比较返回 lambda 表达式的扩展方法

python - 如何快速估计两个(纬度、经度)点之间的距离?