我有一張表格,其中有一個varbinary(max)
列。我已經放棄了LinqToSql設計器的表格,並將「Delay load」設置爲true,因爲我不想加載實際的圖像數據。 是否有可能只知道列是否爲空,而沒有獲取實際數據,仍然只從數據庫執行一個查詢? 我也想使用由Linq創建的自動實體。 像新的bool HasImage {get;}
屬性就像我正在尋找的東西。將自定義字段添加到LINQ到sql自動生成的實體
回答
Linq to SQL「自動」知道該列是否有值的唯一方法是實際詢問數據庫。您可以使用字段/屬性擴展部分類,但這不會消除查找。
你可以做的一件事是創建一個計算列(假設SQL 2005+在這裏,否則你將不得不嘗試去適應你的DBMS)。如果您的表看起來像這樣,例如:
CREATE TABLE Foo
(
FooID int NOT NULL IDENTITY(1, 1) PRIMARY KEY,
FooName varchar(50) NOT NULL,
FooImage varbinary(max) NULL
)
您將添加計算列這樣:
ALTER TABLE Foo
ADD FooHasImage AS CASE
WHEN FooImage IS NULL THEN 0
ELSE 1
END
然後您可以將FooHasImage
列到你的LINQ添加到SQL實體,不要」 t延遲加載它,並檢查該屬性,而不是明確地檢查FooImage
屬性。
此外,我覺得有必要指出,以這種方式將圖像存儲在數據庫中是次優的。可能有必要,我對你的環境瞭解不多,但如果你使用的是SQL Server 2008,那麼考慮使用FILESTREAM
,因爲它將使用廉價的「離線」BLOB存儲的文件系統而不是填充整個事物在數據庫中。
不知道你Q的實際答案,但如果你沒有得到答案:如何在DB中自己做改變。 (當然如果你能控制DB設計的話)。
並將HasImage(或HasContent)列直接放在表中,默認爲「false」,當您添加圖像時,將其設置爲「true」,並且您可以查看該列以查看是否有圖像或不。
創建一個部分類
public partial class MyTableObject
{
public bool HasImage { get { return MyColumn.HasValue; } }
}
這可能會引發數據庫命中,雖然
我建議增加一個新的列到數據庫「HasImage」位,你設置圖像上傳時或刪除
我試過了,但HasValue在延遲加載時似乎總是錯誤的。它似乎沒有觸發對數據庫的新查詢。所以我的測試表明這是不可能的。但我可能忽略了一些東西:-) – Karsten 2010-03-24 14:40:06
- 1. 自動生成LINQ到SQL
- 2. 如何自定義字段添加到jQuery的表單生成
- 3. 將字體重量添加到自定義添加字體的反應原生
- 4. 如何將自定義字段添加到IPB中的窗體
- 5. 實體框架,將圖表添加到自定義實體
- 6. LINQ到實體自定義的方法
- 7. c#使用visual studio將自定義方法添加到實體生成的類
- 8. 自動將字體添加到字母
- 9. Linq到實體和自定義屬性
- 10. 添加自定義輸入字段的自動窗體流星
- 11. PLINQO/LINQ到SQL - 生成的實體自我保存方法?
- 12. LINQ實體與LINQ to SQL中的自定義實體
- 13. 將自定義代碼添加到由Automake生成的Makefile中
- 14. 如何自動添加字段到EJB CMP實體bean?
- 15. 添加自定義字體
- 16. 如何將「自定義」日期字段添加到自定義帖子類型?
- 17. 如何將自定義字段添加到自定義帖子類型?
- 18. 將用戶自定義字段自動添加到訂單元數據
- 19. 將自定義代碼添加到實體框架類
- 20. 我無法將自定義字體添加到我的網頁
- 21. 如何將自定義字段添加到Laravel的模型中?
- 22. 將自定義字段添加到magento的onepage結帳
- 23. Wordpress將自定義字段添加到帖子的前端
- 24. 將自定義字段添加到Django中的auth_user表中
- 25. 將屬性添加到Django中的自定義字段
- 26. 如何添加自定義字體的PDF生成器
- 27. 如何將開關添加到自定義Rails生成器?
- 28. 如何將自定義生成步驟添加到TFS 2015
- 29. Linq到SQL和SQL Server自動增加字段
- 30. Linq到自定義SQL的SQL屬性
這似乎工作得很好!此外,我在設計器中將新列的類型更改爲System.Boolean。 – Karsten 2010-03-24 10:19:21