Я никогда не использовал Simple.Data
раньше, но я думаю, что вы хотите сделать это:
var currentDate = DateTime.Now;
var nullDate = new DateTime(1900, 1, 1);
var result = db.TableA.Query()
.Join(db.TableB).On(db.TableA.KeyField == db.TableB.KeyField &&
((!Object.ReferenceEquals(null, db.TableB.SomeDate) ? db.TableB.SomeDate : nullDate) <= currentDate)
.Select(db.TableA.Field1, db.TableA.Field2, db.TableB.Field1);
Или выведите его из объединения:
var currentDate = DateTime.Now;
var nullDate = new DateTime(1900, 1, 1);
var result = db.TableA.Query()
.Join(db.TableB).On(db.TableA.KeyField == db.TableB.KeyField)
.Where((!Object.ReferenceEquals(null, db.TableB.SomeDate) ? db.TableB.SomeDate : nullDate) <= currentDate)
.Select(db.TableA.Field1, db.TableA.Field2, db.TableB.Field1);
Какой тип данных для db.TableB.SomeDate
? Если Simple.Data
генерирует его как обнуляемый тип данных (Nullable<DateTime>
), тогда вы можете сделать:
db.TableB.SomeDate.GetValueOrDefault(nullDate) <= currentDate