1
是否可以在SubSonic查詢上應用WHERE子句?亞音速單個WHERE子句
例如,我得到得到一個單一的基於ID ...
db.Single<Storage>(id);
但我怎麼能得到一個基於一個簡單的WHERE子句?
db.Single<Storage>(WHERE columnname == "value");
是否可以在SubSonic查詢上應用WHERE子句?亞音速單個WHERE子句
例如,我得到得到一個單一的基於ID ...
db.Single<Storage>(id);
但我怎麼能得到一個基於一個簡單的WHERE子句?
db.Single<Storage>(WHERE columnname == "value");
感謝以上,這是一個幫助,最終我簡化這下面...
db.Single<Storage>(s => s.ColumnName == "value");
這是可能的:
// Will return a Storage instance with property IsNew = true, if record does not exist
// since an object created with new never can be null
var storage1 = new Storage(1); // id = 1
var storage1 = new Storage(Storag.Columns.ColumnName, "value");
// Will return 0 if record not found (subsonic3 only)
var storage3 = (from s in Storage
where s.ColumnName == "value"
select s).SingleOrDefault();
// Will throw an exception if record not found (subsonic3 only)
var storage3 = (from s in Storage
where s.ColumnName == "value"
select s).Single();
由於分貝是局部類,你可以擴展它。只需在同一名稱空間內創建一個新文件(但解決方案中的另一個文件夾)即可。這適用於亞音速2,但與亞音速3相似,我認爲。
public static partial class DB
{
public static T Single<T>(String columName, Object columnValue) where T: RecordBase<T>, new()
{
return Select().From<T>()
.Where(columnName).IsEqualTo(columnValue)
.ExecuteSingle<T>();
}
}
呀,沒想到有關;還採用亞音速2,因爲我)限於框架2.0。期待在不久的將來發生反應。 – 2010-10-01 20:07:34
@SchlaWiener:偏離主題,但自從你提到它之後,我會說我對SubSonic 3並不滿意。確保LINQ語法很好,但是它有問題,並且當LINQ提供程序沒有打到錯誤,它只是普通的限制。更不用說模板化代碼中有足夠的突破性變化成爲一個麻煩。我希望你可以儘快在框架中上升,但不要太過興奮SS3,哈哈。 – 2010-10-01 20:19:10
由於我使用的mysql可能不像sql server那麼多,我預計會發現一些bug。但是由於它是開源的,我可以自己修復它;)對於我來說,殺手功能是亞音速結合XtraGrid的服務器模式和linq數據源http://tv.devexpress.com/#XtraGridLinqServerMode我有一個演示應用程序正在運行,它很棒。我可以進行增量搜索/排序和分組在200000 +記錄表上,它的速度非常快。 – 2010-10-01 23:50:46