エンティティフレームワークとVARBINARY

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

質問

.NETエンティティフレームワークを使用していますが、varbinaryを含むエンティティが1つあります。データベースから取得された後、コードビハインドの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は合法ですか? はい、理由を学ぶ