替换返回值 - 从DataPortal到DataTable

时间:2013-10-01 21:15:46

标签: c# asp.net .net visual-studio-2010 visual-studio

 public static CustomizeCourseCompletionWithModuleList GetCustomizeCourseCompletionWithModuleList()
{
    var cmd = new StoredProcedure
    {
        CommandText = "CustomizeCourseCompletionWithModuleSelectById",
        CommandType = System.Data.CommandType.StoredProcedure
    };
    cmd.Parameters.Add("@ID", DBNull.Value);
    return DataPortal.Fetch<CustomizeCourseCompletionWithModuleList>(cmd);
}

最后我没有返回DataPortal而是想返回DataTable,我应该怎么做?

CustomizeCourseCompletionWwithModuleList类:

public class CustomizeCourseCompletionWithModuleList : BusinessListBase<CustomizeCourseCompletionWithModule>
{
    #region  Business Methods

    public CustomizeCourseCompletionWithModule GetItem(int childId)
    {
        return this.FirstOrDefault(child => child.Id == childId);
    }

    public override void Remove(int childId)
    {
        foreach (var child in this.Where(child => child.Id == childId))
        {
            RemoveChild(child);
            break;
        }
    }

    public bool Contains(int childId)
    {
        return this.Any(child => child.Id == childId);
    }

    public bool ContainsDeleted(int childId)
    {
        return DeletedList.Any(child => child.Id == childId && child.IsDeleted);
    }

    #endregion

StoredProcedure:

public class StoredProcedure : ICloneable
{
    private Parameters _parameters = new Parameters();
    private string _procName;

    public StoredProcedure(string name)
    {
        _procName = name;
        CommandType = System.Data.CommandType.StoredProcedure;
    }

    public StoredProcedure()
    {
        CommandType = System.Data.CommandType.StoredProcedure;
    }

    [DataMember]
    public String CommandText
    {
        get { return _procName; }
        set { _procName = value; }
    }

    [DataMember]
    public System.Data.CommandType CommandType { get; set; }
    [DataMember]
    public string Name
    {
        get { return _procName; }
        set { _procName = value; }
    }
    [DataMember]
    public Parameters Parameters
    {
        get { return _parameters; }
        set { _parameters = value; }
    }


    #region ICloneable Members

    object ICloneable.Clone()
    {
        return GetClone();
    }

    [EditorBrowsable(EditorBrowsableState.Advanced)]
    protected virtual object GetClone()
    {
        return ObjectCloner.Clone(this);
    }

    #endregion
}

如果您需要任何其他信息,请询问,以便您给我一个正确的答案。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我不确定这是否有用,但我做了一些挖掘,我遇到了这篇文章,讨论了如何使用CLSA's ObjectAdapter将列表转换为DataSet。 Csla.Data.ObjectAdapter

//Get the a musicians BusinessBaseList
MusiciansList musicians = MusiciansList.GetList();

//Use the ObjectAdapter to transform the list into
//a DataSet
ObjectAdapter adapter = new ObjectAdapter();
DataSet ds = new DataSet();
adapter.Fill(ds, musicians);

//Bind the DataSet to the musician’s 
//DropDownList
ddMusicians.DataSource = ds.Tables[0];
ddMusicians.DataTextField = "LastName";
ddMusicians.DataValueField = "Id";
ddMusicians.DataBind();