實體框架和VARBINARY

asp.net c# entity-framework sql-server-2005

我正在使用.NET實體框架,並且我有一個包含varbinary的實體。有沒有一種簡單的方法可以在代碼隱藏中獲取varbinary的大小,之後是從數據庫中檢索出來的?

我認為可能有某種方法可以直接從實體中獲取大小,例如entity.Context.Size - 還是需要以不同的方式處理它?

一般承認的答案

varbinary轉換為Entity Framework中的byte[]字段,這意味著您可以檢查數組的Length屬性:

int fieldSize = entity.MyVarBinaryField.Length;

正如tster所提到的:在LINQ to Entities查詢中,您可以調用SqlFunctions類的DataLength方法,該方法將轉換為生成的SQL語句中的DATALENGTH函數調用。這僅適用於SQL Server和Entity Framework 4或更高版本:

int? fieldSize = repository.Entity
  .Select(e => SqlFunctions.DataLength(e.MyVarBinaryField)).Single();

熱門答案

我知道這個問題很老,但EF現在通過使用SqlFunctions.DataLength()來支持這個問題。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因