我在Web表单中有四个按钮,它们的目的分别是加载第一条,上一条,下一条和最后一条记录。
他们通过获取表单中加载的当前ID并根据需要执行操作。我正在使用Linq to SQL。
下面是我用于NEXT记录的代码,如果我想通过ID加载下一条记录,则该函数运行良好。
var dx = new DataModelDataContext();
List<Dog> dogList = dx.Dogs.AsEnumerable().ToList();
try
{
return
dogList.SkipWhile(x => x.Id != dogId).Skip(1).FirstOrDefault().Id.ToString(
CultureInfo.InvariantCulture);
}
catch
{
return null;
}
我重复一下,对于以前的场景,此代码可以正常工作。
场景发生了变化,现在我必须根据前面所述使用前面提到的按钮来检索记录。
一个包含以下形式的属性的下拉列表:(FirstName,LastName,Gender等...)因此,它不再是旨在查找的函数
通过ID的下一条记录。
我正在考虑创建一个LoadNextRecord(searchParameter,TextboxValue)以便根据该属性定位下一条记录
从下拉列表中指定。
但是,是否可以动态指定要与我的数据进行比较的属性?
示例:x => x。[searchParameter]!= textboxvalue
我知道使用动态SQL是可行的...但是我想知道是否可以使用LINQ。
参考方案
您可以使用反射
var dx = new DataModelDataContext();
List<Dog> dogList = dx.Dogs.AsEnumerable().ToList();
string PropetyToCheck = "MyProperty";
PropertyInfo property = typeof(Dog).GetProperty(PropetyToCheck);
try
{
return
dogList.SkipWhile(x => property.GetValue(x, null) != dogId).Skip(1).FirstOrDefault().Id.ToString(
CultureInfo.InvariantCulture);
}
SQL Joins与Java代码? - java我有这样的查询Select Folder.name from FROM FolderTable,ValidFolder, ValidFolderGroup, ValidUser, ValidLocation, ValidDepartment where ValidUser.LocationCode *= ValidLocation.LocationCode …
如何处理LINQ to Entities仅支持无参数的构造函数和初始化程序[重复] - c#This question already has answers here: Only parameterless constructors and initializers are supported in LINQ to Entities (14个回答) 4年前关闭。 因此,当我尝试从Web Api获取数据时会发生这种情况:ExceptionMessa…
剃刀付款集成->如何通过关闭按钮X检测剃刀付款模型是否关闭 - javascript当用户关闭而无需付款时,我在CI框架中使用Razorpay,请创建razor支付模型,然后取消订单,我希望按状态更改为已取消的状态触发查询。所以我怎么能检测到这一点。我已经通过单击jQuery单击关闭功能但无法使用... javascript大神给出的解决方案 Razorpay提供了JS方法来检测模式关闭。您编写的任何JS代码都不会在结帐页面上运行,因为它是…
如何使用箭头符号(->)创建受保护的方法? - java当我们编写以下代码时Stream.of(1,2,3,4,5).filter(i -> (i%2 == 0)).map( i -> i*i ); 表达式i -> (i%2 == 0)或i -> i*i将变为私有方法。在我的用例中,编写了一个junit测试,以确保没有方法是私有的(是的,这是强制性的),并且对于这些lambda表达式而言,…
Flask to Dygraph-如何传递数据? - javascript如果我有一个简单的Python时间数据系列,例如:graphdata = [] graphdata.append( [(datetime.date(2008, 5, 7)),75]) graphdata.append([(datetime.date(2008, 5, 8)), 85]) graphdata.append([(datetime.date(200…