小编Lee*_*ary的帖子

优化实体框架查询

我正在尝试在我自己的时间制作一个stackoverflow克隆来学习EF6和MVC5,我目前正在使用OWin进行身份验证.

当我有50-60个问题的时候一切正常,我使用Red Gate数据生成器并尝试将其增加到100万个问题,并且几千个子表行没有关系只是为了"压力"ORM一点.这是linq的样子

var query = ctx.Questions
               .AsNoTracking()     //read-only performance boost.. http://visualstudiomagazine.com/articles/2010/06/24/five-tips-linq-to-sql.aspx
               .Include("Attachments")                                
               .Include("Location")
               .Include("CreatedBy") //IdentityUser
               .Include("Tags")
               .Include("Upvotes")
               .Include("Upvotes.CreatedBy")
               .Include("Downvotes")
               .Include("Downvotes.CreatedBy")
               .AsQueryable();

if (string.IsNullOrEmpty(sort)) //default
{
    query = query.OrderByDescending(x => x.CreatedDate);
}
else
{
    sort = sort.ToLower();
    if (sort == "latest")
    {
        query = query.OrderByDescending(x => x.CreatedDate);
    }
    else if (sort == "popular")
    {
        //most viewed
        query = query.OrderByDescending(x => x.ViewCount);
    }
}

var complaints = query.Skip(skipCount)
                      .Take(pageSize)
                      .ToList(); //makes an evaluation..
Run Code Online (Sandbox Code Playgroud)

不用说我得到SQL超时并且在安装Miniprofiler之后,看看生成的sql语句,它是一个可怕的几百行.

我知道我加入/包括太多桌子,但现实生活中有多少项目,我们只需加入1或2个桌子?可能有些情况我们必须用数百万行来做这么多连接,是唯一的存储过程吗?

如果是这样的话,EF本身是否只适合小规模项目?

c# performance entity-framework

18
推荐指数
3
解决办法
2万
查看次数

Azure CDN与Azure Blob存储起源拉动时间过长

我正在使用azure blob存储将图像存储在公共容器中并将它们嵌入公共网站.一切正常,blob在xxxxx.blob.core.windows.net我上传它们的瞬间公开可用.我想将Azure CDN用于其边缘缓存基础架构并在其中设置一个xxxxx.vo.msecnd.net.

但是现在,当我将我的图像指向CDN时,它会返回404大约15分钟左右,然后它开始服务.在他们的文档中提到我们不应该将CDN用于高违规或频繁更改的blob,但是对于公共站点具有图像上载功能的简单CMS保证CDN不是吗?

azure azure-storage azure-cdn

15
推荐指数
2
解决办法
8919
查看次数

识别视频中最好的标记是什么?

我目前正在视频轨道(来自摄像机)和音频轨道(来自微型)之间建立自动同步处理.为此,我计划建立一个小型网络应用程序,用我的智能手机显示一个拍板(例如:Iphone),并在我拍摄时发出特定的双琶.之后,我将执行一个小型OpenCV应用程序(实际上是JavaCV),它将检测智能手机显示拍板的图像.它仍将留给我只找到特定的双极同步两个轨道.

你可以在这里看到(http://vimeo.com/47002882)和这里(http://vimeo.com/46213073)我们已经构建并手动同步的视频.基于这个背景(以前的视频的距离,照明等)什么是你,最好的东西(形状,颜色或其他)几乎可以一直检测到?我应该使用什么样的转型?

你必须想象我会用我的智能手机显示拍板,相机将放在离我五七米的地方.

我建立了第一个基本拍板(http://jsbin.com/zuqumiso/45/)并使用OpenCV的视频处理:

帧 - > RGB到GRAY转换 - > GaussianBlur - > AdaptativeThreshold - > Hought Transformation(标准)来检测线.

但只有当我的智能手机距离相机30厘米时它才有效...

video opencv image-recognition

12
推荐指数
1
解决办法
683
查看次数

如何使用 dapper 将 DbGeography 插入 SQL Server

我已经创建了模型 using System.Data.Entity.Spatial;

public class Store
{
    public int Id { get; private set; }
    public string Name { get; set; }
    public string Address { get; set; }
    public DbGeography Location { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

插入数据库

using (SqlConnection conn = SqlHelper.GetOpenConnection())
{
    const string sql = "INSERT INTO Stores(Name, Address, Location) " + 
                       "VALUES (@Name, @Address, @Location)";
    return conn.Execute(sql, store);                                
}
Run Code Online (Sandbox Code Playgroud)

我得到了例外 type System.Data.Entity.Spatial.DbGeography cannot be used as a parameter value

我试过寻找插入的方法,是我能找到的最好的方法,但它试图只插入 1 个参数,我应该怎么做才能插入具有 dbgeography 成员的对象? …

c# sql-server geospatial dapper micro-orm

6
推荐指数
1
解决办法
2272
查看次数

由于第 3 方依赖项,单文件 .NET 5 项目发布错误

目前,在 anetcoreapp3.1和 I\xe2\x80\x99m 上尝试升级到.net5. 编译期间没有问题,但在 Docker 中运行时,我得到:

\n
\n

System.NotSupportedException:从单文件包加载的程序集不支持 CodeBase。

\n
\n

我知道它发布在这里

\n
\n

建议操作

\n

作为单个文件发布时,避免依赖于程序集的文件位置。

\n
\n

但我使用RawRabbit \xe2\x80\x99m ,它已经不活动了。我还挖掘了源代码,发现只有一个地方调用了已弃用的API

\n

我当前的解决方法是不发布单个文件,但我是否已经绝望了?

\n

c# rawrabbit .net-5

5
推荐指数
1
解决办法
4106
查看次数

jquery select2 插件正则表达式允许字符?

无论如何要为用户输入定义一组“允许”字符?仅用于例如字母数字输入。官方文档里好像没找到

javascript jquery-select2

4
推荐指数
1
解决办法
3149
查看次数

使用dapper查询空间数据

我发现了一些相关问题,但作者放弃了并继续使用存储过程来进行"映射".

这实际上是一个延续的问题在这里

模型

public class Store
{
    public int Id { get; private set; }
    public string Name { get; set; }
    public string Address { get; set; }
    public DbGeography Location { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

查询

using (SqlConnection conn = SqlHelper.GetOpenConnection())
{
    const string sql = "Select * from Stores";
    return conn.Query<Store>(sql, new { Tenant_Id = tenantId });
}
Run Code Online (Sandbox Code Playgroud)

Dapper不了解空间数据,正如许多人所说的那样,作者最初并不打算支持供应商特定的实现.但是Query<T>很难找到扩展支持的文档

c# sql-server spatial dapper micro-orm

4
推荐指数
1
解决办法
2047
查看次数