从DAL返回自定义类?

时间:2011-03-25 10:35:15

标签: c# asp.net business-objects

我有一个具有以下属性的对象

Books
----------
ID , Name

现在,我想在表示层返回一个gridview对象,该对象具有比原始对象更多的属性

Gridview Object
--------------- 
ID, Name, Quantity, Location, ISBNNO, LastIssued

我目前没有任何由这些属性组成的业务对象。我不想仅仅为了gridview而创建它。

  

我如何创建&返回自定义   这些物体在飞行中?我是   DTO的新手。有人可以给我一个   示例在DAL中返回DTO   ?

谢谢, 达米安。

3 个答案:

答案 0 :(得分:3)

如果您不想弄乱数据库对象,请为其创建装饰器

public class myGVObject
{
    public Book { get; set; }

    public int Quantity { get; set; }
    public string Location { get; set; }
    public string ISBNNO { get; set; }
    public DateTime LastIssued { get; set; }
}

并在你的gridView中使用:

<asp:Label id="lblBookId" text="<%# Eval("Book.ID") %>" />
<asp:Label id="lblLastIssue" text="<%# Eval("LastIssued") %>" />

答案 1 :(得分:1)

这是我在谷歌上发现的。它有帮助吗?

http://www.codeproject.com/KB/cs/datatransferobject.aspx

http://aspalliance.com/1215

我认为你可以扩展你的书类或继承它。

答案 2 :(得分:1)

你可以动态地从Linq查询中项目你的对象怎么样?

var result = from record in datastore
             select new
             {
                 ID = record.ID,
                 Name = record.Name,
                 Quantity = record.Quantity,
                 Location = record.Location,
                 ISBNNO = record.ISBN,
                 LastIssued = record.LastIssued
             };
GridView1.DataSource = result;
GridView1.DataBind();