C# 从DAL返回自定义类?

C# 从DAL返回自定义类?,c#,asp.net,business-objects,C#,Asp.net,Business Objects,我有一个具有以下属性的对象 Books ---------- ID , Name 现在,我想为表示层中的gridview返回一个对象,它的属性比原始对象多得多 Gridview Object --------------- ID, Name, Quantity, Location, ISBNNO, LastIssued 我目前没有任何由这些属性组成的业务对象&我不想仅仅为了gridview而创建它 如何创建并返回自定义 像这样的飞行物体?我是 DTO的新成员。有人能给我一个电话吗 在我的D

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

Books
----------
ID , Name
现在,我想为表示层中的gridview返回一个对象,它的属性比原始对象多得多

Gridview Object
--------------- 
ID, Name, Quantity, Location, ISBNNO, LastIssued
我目前没有任何由这些属性组成的业务对象&我不想仅仅为了gridview而创建它

如何创建并返回自定义 像这样的飞行物体?我是 DTO的新成员。有人能给我一个电话吗 在我的DAL中返回DTO的示例 ?

谢谢,
达米恩

这是我在谷歌上找到的。有帮助吗


我认为您可以扩展book类或继承它。

这是我在google上找到的。有帮助吗


我认为您可以扩展book类或继承它。

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

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") %>" />

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

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") %>" />

如何在运行时从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();
如何在运行时从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();

当您不想为应用程序创建对象时,您到底在为什么创建对象?对不起,我的意思是,创建业务对象文件。我的每个业务对象都在一个单独的cs文件中。是的,每个类都应该在它自己的代码文件中。请不要误解我的意思,但是在它自己的代码文件中创建类的问题在哪里呢?我想我有点糊涂了。对不起,问题是每个gridview都有很多单独的类文件。在我的例子中,有150个。所以我想也许有办法把它们放在一个类文件中,或者只是从DAL创建并返回一个对象。当你不想为你的应用程序创建对象时,你创建对象到底是为了什么?对不起,我的意思是,创建一个业务对象文件。我的每个业务对象都在一个单独的cs文件中。是的,每个类都应该在它自己的代码文件中。请不要误解我的意思,但是在它自己的代码文件中创建类的问题在哪里呢?我想我有点糊涂了。对不起,问题是每个gridview都有很多单独的类文件。在我的例子中,有150个。所以我想也许有办法把它们放在一个类文件中,或者只是从DAL创建并返回一个对象。嗨,这似乎是一个不错的选择,但我在多个页面上使用网格,所以我会使用decorator对象。嗨,这似乎是一个不错的选择,但我在多个页面上使用网格,所以我会使用decorator对象。谢谢balezandre。你是对的。创建一个单独的decorator对象或继承上一个类的一些属性是否好?谢谢balezandre。你是对的。创建一个单独的decorator对象或从上一个类继承一些属性好吗?