我确定这是菜鸟的错误,但我自己找不到答案。
public class Database : DataContext
{
public Table<Record> RecordTable;
public Database(string connection) : base(connection) {}
}
[Table(Name = "RecordsTable")]
public class Record
{
[Column( IsPrimaryKey = true, CanBeNull = false)]
public int codedID;
}
// inside some class
private void ReadTestData(Database openedDatabase, int expectedValue)
{
Table<Record> rec = openedDatabase.GetTable<Record>();
var q =
from a in rec
where (GetMonth == expectedValue) // <--- that line doesn't work
select a;
foreach (var b in q) { System.Console.WriteLine("something"); }
}
static Expression<Func<Record, int>> GetMonth = a => a.codedID/10000;
public static int DecodeMonth(int codedID)
{
int month = codedID/10000;
//(...)
return month;
}
我想调用DecodeMonth函数并将其返回值与预期值进行比较。我该怎么做?
我做了一些研究并设法运行这样的代码:
var q = openedDatabase.RecordTable.Where(GetMonthBool);
static Expression<Func<Record, bool>> GetMonthBool = a => (a.codedID/10000 == 1);
但是expectedValue 被硬编码为“1”——这并不能解决我的问题。