我正在尝试在我自己的时间制作一个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本身是否只适合小规模项目?
我正在使用azure blob存储将图像存储在公共容器中并将它们嵌入公共网站.一切正常,blob在xxxxx.blob.core.windows.net我上传它们的瞬间公开可用.我想将Azure CDN用于其边缘缓存基础架构并在其中设置一个xxxxx.vo.msecnd.net.
但是现在,当我将我的图像指向CDN时,它会返回404大约15分钟左右,然后它开始服务.在他们的文档中提到我们不应该将CDN用于高违规或频繁更改的blob,但是对于公共站点具有图像上载功能的简单CMS保证CDN不是吗?
我目前正在视频轨道(来自摄像机)和音频轨道(来自微型)之间建立自动同步处理.为此,我计划建立一个小型网络应用程序,用我的智能手机显示一个拍板(例如:Iphone),并在我拍摄时发出特定的双琶.之后,我将执行一个小型OpenCV应用程序(实际上是JavaCV),它将检测智能手机显示拍板的图像.它仍将留给我只找到特定的双极同步两个轨道.
你可以在这里看到(http://vimeo.com/47002882)和这里(http://vimeo.com/46213073)我们已经构建并手动同步的视频.基于这个背景(以前的视频的距离,照明等)什么是你,最好的东西(形状,颜色或其他)几乎可以一直检测到?我应该使用什么样的转型?
你必须想象我会用我的智能手机显示拍板,相机将放在离我五七米的地方.
我建立了第一个基本拍板(http://jsbin.com/zuqumiso/45/)并使用OpenCV的视频处理:
帧 - > RGB到GRAY转换 - > GaussianBlur - > AdaptativeThreshold - > Hought Transformation(标准)来检测线.
但只有当我的智能手机距离相机30厘米时它才有效...
我已经创建了模型 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 成员的对象? …
无论如何要为用户输入定义一组“允许”字符?仅用于例如字母数字输入。官方文档里好像没找到
我发现了一些相关问题,但作者放弃了并继续使用存储过程来进行"映射".
这实际上是一个延续的问题在这里
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# ×4
dapper ×2
micro-orm ×2
sql-server ×2
.net-5 ×1
azure ×1
azure-cdn ×1
geospatial ×1
javascript ×1
opencv ×1
performance ×1
rawrabbit ×1
spatial ×1
video ×1