1
我在一些項目中使用了myGeneration;我注意到BusinessEntity將查詢的結果保存在一個DataTable中,但是如果開發人員想要將結果作爲List對象來看呢? 爲了解決這個問題,我爲自己的使用做了以下修改。如何使用myGeneration從BusinessEntity獲取對象列表?
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();
}
.......
}
現在假設我們有一個表「僱員」和我們產生對他的一類,也是我做如下修改:
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;
}
}
現在我可以找對象的列表,從結果該查詢,而不是一個對象,並將結果在數據表中的:
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);
}
然後,我可以訪問選定的僱員如下:
Employee emp = (Employee) mMainTree.SelectedNode.Tag;
emp.Name = "WWWWW";
emp.Save();
謝謝。 你有更好的提示,想法? 有關更多討論,請訪問MyGeneration論壇。
謝謝you.AsList()返回對象列表,而不是一個項目。 我想說的想法是我所做的修改將行從DataTable轉換爲對象列表。 – houssam11350 2010-06-29 15:55:22
不會在您的答案中添加廣告。 – jgauffin 2011-08-17 13:42:44