IUpdatable<T> 和 IValueInsertable<T> 来自可选值?
IUpdatable<T> and IValueInsertable<T> from optional values?
是否可以在 Linq2DB 中构建类似的东西?目前我遇到的问题是 ITable<T>
无法分配给 IUpdatable<T>
或 IValueInsertable<T>
。或者也许我想要实现的不是一个好的做法?
var optional1 = Optional<int>.None();
var optional2 = Optional<int>.Of(123);
var table = Database.MyTable; // ITable<MyRecord>
if (optional1.HasValue) table = table.Set(x => x.Optional1, optional1.Value);
if (optional2.HasValue) table = table.Set(x => x.Optional2, optional2.Value);
await table.UpdateAsync();
同样适用于IValueInsertable
var optional1 = Optional<int>.None();
var optional2 = Optional<int>.Of(123);
var table = Database.MyTable; // ITable<MyRecord>
if (optional1.HasValue) table = table.Value(x => x.Optional1, optional1.Value);
if (optional2.HasValue) table = table.Value(x => x.Optional2, optional2.Value);
await table.InsertAsync();
您可以使用AsUpdatable()
var updatable = Database.MyTable.AsUpdatable();
if (optional1.HasValue) updatable = updatable.Set(x => x.Optional1, optional1.Value);
if (optional2.HasValue) updatable = updatable.Set(x => x.Optional2, optional2.Value);
await updatable.UpdateAsync();
是否可以在 Linq2DB 中构建类似的东西?目前我遇到的问题是 ITable<T>
无法分配给 IUpdatable<T>
或 IValueInsertable<T>
。或者也许我想要实现的不是一个好的做法?
var optional1 = Optional<int>.None();
var optional2 = Optional<int>.Of(123);
var table = Database.MyTable; // ITable<MyRecord>
if (optional1.HasValue) table = table.Set(x => x.Optional1, optional1.Value);
if (optional2.HasValue) table = table.Set(x => x.Optional2, optional2.Value);
await table.UpdateAsync();
同样适用于IValueInsertable
var optional1 = Optional<int>.None();
var optional2 = Optional<int>.Of(123);
var table = Database.MyTable; // ITable<MyRecord>
if (optional1.HasValue) table = table.Value(x => x.Optional1, optional1.Value);
if (optional2.HasValue) table = table.Value(x => x.Optional2, optional2.Value);
await table.InsertAsync();
您可以使用AsUpdatable()
var updatable = Database.MyTable.AsUpdatable();
if (optional1.HasValue) updatable = updatable.Set(x => x.Optional1, optional1.Value);
if (optional2.HasValue) updatable = updatable.Set(x => x.Optional2, optional2.Value);
await updatable.UpdateAsync();