私は次のサービス方法を持っていました-
public static DataTable GetBookDetails(BookEntities context)
{
DataTable dtBooks= new DataTable();
dtBooks.TableName = "BookDetails";
dtBooks.Columns.Add(new DataColumn("Name",typeof(string)));
dtBooks.Columns.Add(new DataColumn("ISBN",typeof(string)));
dtBooks.Columns.Add(new DataColumn("Price",typeof(int)));
dtBooks.Columns.Add(new DataColumn("Author",typeof(string)));
IQueryable<Book> query = from b in context.Books.Include("Authors")
.Include("Details/Price")
.Include("Activity")
where b.Activity.IsActive
select b;
if (query != null)
{
var sorted = query.ToArray().OrderByDescending(b => b.Activity.DateCreated);
foreach (Book bb in sorted)
{
DataRow row = dtBooks.NewRow();
row["Name"] = bb.Name;
row["ISBN"] = bb.ISBN;
row["Price"] = bb.Details.Price.CostOfBook;
row["Author"] = bb.Authors.Name;
dtBooks.Rows.Add(row);
}
}
else
dtBooks= null;
return dtBooks;
}
私の質問は -
- これは詳細を取得するための効率的な方法ですか、それともこの方法を改善できますか?
- 誰かが、DataTable の代わりに IList を使用するように提案してくれました。これを使うべきですか?もしそうなら、どのような利点がありますか?
- DataTable を使用する際の何が問題になっていますか?