我希望在我的个人资料类中搜索全名。谁能告诉我我哪里做错了?
我知道: Profile.FullName不支持到SQL的转换。
linq分部类:
partial class Profile
{
public static readonly Expression<Func<Profile, string>> expFullName = p => p.FirstName + " " + p.LastName;
public static readonly Func<Profile, string> funcFullName = expFullName.Compile();
public string FullName
{
get { return funcFullName(this); }
}
}数据源码:
<asp:LinqDataSource runat="server" ID="someSource" ContextTypeName="MyContext" TableName="Images"
Where='Approved == true && CategoryID = 2 && (@searchTerm = "" || Profile.FullName.Contains(@searchTerm))'>
<WhereParameters>
<asp:ControlParameter Name="searchTerm" ControlID="txtSearch" DefaultValue="" ConvertEmptyStringToNull="false" />
</WhereParameters>
</asp:LinqDataSource> 我想指出的是,下面的解决方案是有效的。但我希望有一个FullName的派生属性,并无条件地使用它。这有可能吗?
(Profile.FirstName + " " + Profile.LastName).Contains(@searchTerm)发布于 2012-01-26 02:08:41
这是可行的,因为它可以转换为SQL:
(Profile.FirstName + " " + Profile.LastName).Contains(@searchTerm)这将不起作用,因为FullName没有映射到SQL中的列:
(Profile.FullName).Contains(@searchTerm)https://stackoverflow.com/questions/9007262
复制相似问题