NHibernate IList作为Drop Down数据源?

时间:2011-05-09 19:03:47

标签: c# nhibernate collections datasource

我正在尝试从Nhibernate对象填充下拉列表,但在使其正常工作时遇到问题。我已经创建了对象并使用以下

对其进行了映射
public class Status
{
    public virtual int StatusId { get; set; }
    public virtual string StatusName { get; set; }

}

...

<class name="CM.Core.Status, CM.Core" table="refStatus">
    <id name="StatusId" column="statusId" type="Int32">
    <generator class="native"></generator>
    </id>
<property name="StatusName" column="status" type="string"/>
</class>

然后我使用

填充它
    public IList<Status> GetStatuses()
    {
        return _session.CreateQuery("select s from Status s")
            .List<Status>();
    }

最后,我使用

填充我的下拉列表
        IList<Status> status = _provider.GetStatuses();
        ddlStatus.DataSource = status;
        ddlStatus.DataBind();

但是,它使用我的班级名称而不是状态值填充值和文本正确的次数
CM.Core.Status
CM.Core.Status
CM.Core.Status
CM.Core.Status

IList是否在这种情况下使用了错误的集合类型?我应该把它作为不同的东西吗?有没有办法在数据绑定之前访问类属性?

2 个答案:

答案 0 :(得分:3)

您需要指定数据文本字段和数据值字段。

   ddlStatus.DataTextField = "StatusName";
   ddlStatus.DataValueField = "StatusId";

答案 1 :(得分:2)

您需要设置

ddl.DisplayMember = "StatusName";
ddl.ValueMemeber = "StatusId";