ASP.NET动态数据显示列属性导致排序问题
使用来自Northwind数据库的具有LINQ to SQL DataContext的ASP.NET动态数据 当我将DisplayColumn属性添加到我的LINQ to SQLASP.NET动态数据显示列属性导致排序问题,asp.net,dynamic-data,asp.net-dynamic-data,Asp.net,Dynamic Data,Asp.net Dynamic Data,使用来自Northwind数据库的具有LINQ to SQL DataContext的ASP.NET动态数据 当我将DisplayColumn属性添加到我的LINQ to SQL实体类之一,并在分部类中引用自定义代码中的属性时,我将无法在生成的GridView中按该列排序。即使我将非自定义属性引用为sortColumn,我仍然无法进行排序 为什么会这样 示例代码: [DisplayColumn("LastNameFirstName", "LastName", false)] public par
实体
类之一,并在分部类中引用自定义代码中的属性时,我将无法在生成的GridView中按该列排序。即使我将非自定义属性引用为sortColumn
,我仍然无法进行排序
为什么会这样
示例代码:
[DisplayColumn("LastNameFirstName", "LastName", false)]
public partial class Employee
{
public string LastNameFirstName
{
get { return LastName + ", " + FirstName; }
}
}
亚伦
编辑:
sortColumn
指定当此实体用作外键(在DropDownList中)时,而不是在GridView中排序时,用于对其进行排序的列。这是正确的,因为属性不在DB中,linq to SQL将尝试向DB构造一个T-SQL查询以获取实体。但是将失败,因为没有具有该名称的列。您可以尝试重写可能有效的ToString()方法,但它只会对FK关系引用的实体进行筛选。尝试添加[ScaffoldColumn(true)]-这可能会欺骗动态数据以启用排序
[DisplayColumn("LastNameFirstName", "LastName", false)]
public partial class Employee
{
[ScaffoldColumn(true)]
public string LastNameFirstName
{
get { return LastName + ", " + FirstName; }
}
}
这可能是故意的
“sortColumn”指定当该实体用作外键(在DropDownList中)时,而不是在GridView中排序时,用于对其进行排序的列。但第二个参数“LastName”将在DB中。如果我在这里指定它,我认为它应该试着按这个排序。无论哪种方式,它都可以在创建域对象后按自定义属性进行排序……是的,但字段LastNameFirstName不在数据库中,并且Linq不知道LastNameFirstName:中发生了什么。)