3

将 ASP.NET 动态数据与 Northwind 数据库中的 LINQ to SQL DataContext 结合使用...

当我将 DisplayColumn 属性添加到我的 LINQ to SQLentity类之一并从部分类中的自定义代码中引用一个属性时,我无法在生成的GridViews中按该列进行排序。即使我将非自定义属性引用为sortColumn.

为什么会这样?

示例代码:

[DisplayColumn("LastNameFirstName", "LastName", false)]
public partial class Employee
{
    public string LastNameFirstName
    {
        get { return LastName + ", " + FirstName; }
    }
}

亚伦

编辑:sortColumn指定当它用作外键时(在DropDownList中)将用于对该实体进行排序的列,而不是在GridView中对其进行排序时。

4

4 回答 4

2

这是正确的,因为该属性不在数据库中,并且 linq to SQL 将尝试构造一个 T-SQL 查询到数据库以获取您的实体。但会失败,因为这些不是具有该名称的列。

于 2009-04-10T11:07:29.090 回答
2

这可能是设计使然...

“sortColumn”指定当它用作外键时(在 DropDownList 中),而不是在 GridView 中对其进行排序时,将用于对该实体进行排序的列。

于 2010-01-25T22:42:53.503 回答
0

您可以尝试覆盖可能有效的 ToString() 方法,但它只会过滤 FK 关系引用的实体。

于 2009-04-15T12:40:30.120 回答
0

尝试添加[ScaffoldColumn(true)] - 它可能会欺骗动态数据以启用排序

[DisplayColumn("LastNameFirstName", "LastName", false)]
public partial class Employee
{
    [ScaffoldColumn(true)]
    public string LastNameFirstName
    {
        get { return LastName + ", " + FirstName; }
    }
}
于 2009-11-23T19:09:13.720 回答