首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用myGeneration从BusinessEntity获取对象列表?

如何使用myGeneration从BusinessEntity获取对象列表?
EN

Stack Overflow用户
提问于 2010-02-28 06:35:18
回答 1查看 688关注 0票数 1

我在一些项目中使用了myGeneration;我注意到BusinessEntity将查询结果保存在DataTable中,但如果开发人员希望以对象列表的形式获得结果,该怎么办?为了解决这个问题,我做了以下修改以供我自己使用。

代码语言:javascript
复制
public  class BusinessEntity

{
    //....
    public DataTable TheDataTable
    {
        get
        {
            return _dataTable;
        }
        set
        {
            _dataTable = value;
        }
    }

    public void PutTheRow(DataRow pRow)
    {

        DataRow newRow = _dataTable.NewRow();
        newRow.ItemArray = pRow.ItemArray;
        _dataTable.Rows.Add(newRow);
        _dataRow = newRow;
        //Rewind();
        _dataTable.AcceptChanges();

    }

    .......


}

现在假设我们有一个表"Employee“,我们为他生成了一个类,我还做了以下修改:

代码语言:javascript
复制
public abstract class Employee : _Employee
{
    public Employee()
    {

    }
    public List<Employee> AsList()
    {

        List<Employee> list = new List<Employee>();
        Employee businessEntity = null;
        foreach (System.Data.DataRow row in TheDataTable.Rows)
        {
            businessEntity = new Employee();
            businessEntity.TheDataTable = TheDataTable.Clone();
            businessEntity.PutTheRow(row);
            list.Add(businessEntity);


        }
        return list;
    }
}

现在,我可以从查询结果中获得一个对象列表,而不是数据表中的一个对象和结果:

代码语言:javascript
复制
Employee employee = new Employee();
    employee.Where.ID.Operator = WhereParameter.Operand.NotIn;
    employee.Where.ID.Value = "1,2,3";
    employee.Query.Load();
    foreach (Employee employeeLoop in employee.AsList())
    {
        TreeNode node = new TreeNode(employeeLoop.s_ID);
        node.Tag = employeeLoop;
        mMainTree.Nodes.Add(node);
}

然后,我可以访问所选员工,如下所示:

代码语言:javascript
复制
Employee emp = (Employee) mMainTree.SelectedNode.Tag;
emp.Name = "WWWWW";
emp.Save();

谢谢。你有没有更好的建议,点子?有关更多讨论,请访问MyGeneration论坛。

EN

回答 1

Stack Overflow用户

发布于 2010-06-23 01:21:49

为什么要创建一个只返回一项的名为AsList()的方法呢?您可以像这样创建一个通用的扩展方法(从我的头顶创建):

代码语言:javascript
复制
public static List<T> AsList(this T item)
{
   return new List<T>() { item };
}

不需要遍历1的员工列表来将其添加到TreeNode。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2349198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档