【问题标题】:How to get blob size without getting the value itself with Entity Framework如何在不使用实体框架获取值本身的情况下获取 blob 大小
【发布时间】:2012-03-01 19:28:09
【问题描述】:

如何从 SQL Server 获取 blob (varbinary(max)) 的大小,而无需使用 C# 中的实体框架获取 blob 本身?

using (var context = new EntityBazaCRM(Settings.sqlDataConnectionDetailsCRM))
        {
            Settings.WybraneSzkolenie = context.Szkolenies.FirstOrDefault(d => d.SzkolenieID == szkolenieId);

}

在 sql 中我会这样做 select Len(field) from table?或者唯一的方法是将值实际存储为另一列?将 blob 加载到计算机(尤其是在慢速链接上)然后使用 Blob.Length 是没有意义的。

【问题讨论】:

    标签: c# sql-server entity-framework blob


    【解决方案1】:

    使用 SqlFunctions:

    using (var context = new EntityBazaCRM(Settings.sqlDataConnectionDetailsCRM))
    {
        Settings.WybraneSzkolenie = context.Szkolenies
           .Where(d => d.SzkolenieID == szkolenieId)
           .Select(d => SqlFunctions.DataLength(d.DataField))
           .FirstOrDefault();
    
    }
    

    【讨论】:

    • 是的,当 EF4 发布时,这让我松了一口气:)
    • 很好的示例,但对大表无用,因为它仅限于 Int32。
    猜你喜欢
    • 2011-01-14
    • 1970-01-01
    • 2014-11-11
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    相关资源
    最近更新 更多