小编Rob*_*bba的帖子

实体框架代码First Fluent Api:向列添加索引

我正在运行EF 4.2 CF并想在我的POCO对象的某些列上创建索引.

举个例子,假设我们有这个员工类:

public class Employee
{
  public int EmployeeID { get; set; }
  public string EmployeeCode { get; set; }
  public string FirstName { get; set; }
  public string LastName { get; set; }
  public DateTime HireDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我们经常通过EmployeeCode对员工进行搜索,因为有很多员工,因为性能原因而将索引编入索引会很不错.

我们能用流利的api以某种方式做到这一点吗?或者数据注释?

我知道可以执行这样的sql命令:

context.Database.ExecuteSqlCommand("CREATE INDEX IX_NAME ON ...");
Run Code Online (Sandbox Code Playgroud)

我非常想避免那样的原始SQL.

我知道这不存在,但寻找沿着这些方向的东西:

class EmployeeConfiguration : EntityTypeConfiguration<Employee>
    {
        internal EmployeeConfiguration()
        {
            this.HasIndex(e => e.EmployeeCode)
                .HasIndex(e => e.FirstName)
                .HasIndex(e => e.LastName);
        }
    }
Run Code Online (Sandbox Code Playgroud)

或者使用System.ComponentModel.DataAnnotationsPOCO可能看起来像这样(我知道这不存在):

public class Employee
{ …
Run Code Online (Sandbox Code Playgroud)

c# fluent-interface entity-framework-4 data-annotations ef-code-first

63
推荐指数
7
解决办法
6万
查看次数

我是否应该为每个返回Task的方法使用async/await

假设我有一个C#控制器调用一些返回Task的任意函数(例如,因为它执行数据库事务).我应该总是使用异步和等待,还是应该只返回任务?

示例控制器:

public async Task<string> DoSomething() {
    return await SomeOtherFunctionThatReturnsATask();
}
Run Code Online (Sandbox Code Playgroud)

我应该把它改成:

public Task<string> DoSomething() {
    return SomeOtherFunctionThatReturnsATask();
}
Run Code Online (Sandbox Code Playgroud)

还是真的没关系?

c# async-await

15
推荐指数
1
解决办法
2230
查看次数

我应该避免在TFS中进行毫无根据的合并吗?

也许是一个简单的问题,但是我很难找到答案.我经常在使用TFS作为源代码控制的客户端工作,他们完全避免使用TFS源代码控制的无基本合并功能

部分是因为在过去它需要一个命令行工具来完成它,但可能更重要,因为当你现在在界面中执行它时,它会显示一个黄色惊叹号警告符号,你确实在执行无基础合并.

这种吓跑他们让他们完全避免它.我一直在寻找,以确定是否有任何特定的风险涉及无基础合并,但我无法找到它(或有关无底合并如何工作的详细信息)

tfs branching-and-merging baseless-merge tfs2013

13
推荐指数
1
解决办法
8942
查看次数

Drag'n'drop dataTransfer.getData为空

我正在努力让拖拉机工作,但我似乎完全忽略了getData/setData的工作原理.

我正在使用此代码(http://jsfiddle.net/ASKte/218/)

var el = angular.element(document.getElementById('drag'));
el.attr("draggable", "true");
el.bind("dragstart", function(e) {
    e.dataTransfer.setData('text', 'Where have you gone?!?!')         
});

var target = angular.element(document.getElementById('drop'));
target.bind("dragover", function(e) {
    if (e.preventDefault) {
        e.preventDefault(); // Necessary. Allows us to drop.
    }
    return false;
});

target.bind("dragenter", function(e) {
    console.debug(e.dataTransfer.types);
    console.debug(e.dataTransfer.getData('text'));
});
Run Code Online (Sandbox Code Playgroud)

我在这里使用AngularJS,因为这是一段更大的代码片段.

出于某种原因,当拖动底部正方形的顶部正方形时,getData('text')的值始终为空,但我不知道为什么......

有任何想法吗?

提前致谢.

javascript drag-and-drop angularjs

9
推荐指数
2
解决办法
6160
查看次数

Visual Studio 2012表示网站项目的项目文件是在环境之外编辑的

安装Visual Studio 2012并从包含两个"网站"类型项目的Team Foundation Server打开/升级Visual Studio 2010解决方案后,我不断收到"项目'网站'已在环境外修改"的消息,并带有选项每次我向"网站"项目添加或删除文件时重新加载.

这很奇怪,因为据我所知,这种类型的项目没有项目文件,因此无法编辑它,此外,没有人在环境之外编辑任何东西.

有谁知道这是什么原因以及如何解决?

projects-and-solutions visual-studio-2012

8
推荐指数
1
解决办法
3109
查看次数

如何将文件拖到Windows 8上以管理员身份运行的Visual Studio中

作为Web开发人员,我发现自己一直在将调试器挂钩到IIS进程.在visual studio 2012中,这意味着您必须拥有提升的权限.一般来说,这不是问题,只需将VS2012设置为以管理员身份运行即可.

但是,这样做无法将文件从Windows资源管理器拖到VS2012中.懒得使用打开的文件对话框,我更喜欢在那里拖动文件.

UAC阻止您这样做,因此在Windows 7中我们只需关闭UAC并完成它.在Windows 8中,这不起作用.

互联网上有很多关于如何在Windows 8中禁用UAC的指南.大多数人只是说你应该将滑块移动到按钮上.但这并没有实际禁用UAC,尝试此操作后仍然无法将文件拖放到Visual Studio 2012中.

其他指南则提到通过更改注册表设置来禁用UAC.这会关闭UAC并允许您将文件拖放到VS2012中,但这样做的副作用是Metro应用程序无法再运行.显然这有点太糟糕了......

有没有人对如何能够有任何想法

  • 以管理员身份运行VS2012,以便我们可以调试iis
  • 能够将文件拖放到VS2012中
  • 能够运行Metro应用程序

提前致谢

uac microsoft-metro windows-8 visual-studio-2012

8
推荐指数
1
解决办法
2040
查看次数

如何在IIS10中正确启动asp.net应用程序

我正在尝试让我的ASP.NET应用程序在应用程序池运行时自动启动.

根据网上很多很多参考资料,我已经完成了以下工作:

  • 将应用程序池设置为 StartMode=AlwaysRunning
  • 将有问题的站点(属于前面提到的池)设置为 preloadEnabled=true
  • 将该Application Initialization功能安装到Windows安装
  • <applicationInitialization>节点添加到web.config的<system.webServer>节点

Web应用程序基于Owin,并且在其Startup.Configuration()方法中有一个简单的log4net日志记录语句.现在重新启动IIS时,我看到w3svc.exe进程正在运行,所以我知道它StartMode=AlwaysRunning正在运行.但是,日志文件中没有日志消息.

导航到应用程序中的任何URL(甚至是不存在的URL)将启动应用程序并添加日志行.

由于在应用程序启动时所做的实际工作,我真的希望应用程序真正预加载,但我似乎无法完成它.

搜索这个网站遗憾的是我无法找到解决方案.

提前致谢.

asp.net iis autostart

8
推荐指数
1
解决办法
4927
查看次数

Angular 2.0 final:如何从代码中实例化组件

我正在寻找一种方法来从另一个组件的代码中实例化Angular2中的组件.与许多提出类似问题的人不同,我对动态编译新组件并不感兴趣,只是实例化并插入已存在于我的应用程序中的组件.

例如:

说我有两个组成部分:

仪表板item.component.ts

import { Component } from "@angular/core";

@Component({
    selector: "dashboard-item",
    template: "Some dashboard item with functionality"
})
export class DashboardItemComponent {
    constructor() {}

    onInit() {}
}
Run Code Online (Sandbox Code Playgroud)

dashboard.component.ts

import { Component } from "@angular/core";

@Component({
    selector: "dashboard",
    template: "<h1>Dashboard!</h1><div #placeholder></div>"
})
export class DashboardComponent {
    constructor() {}

    onInit() {}
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是一种在DashboardComponent的onInit中创建DashboardItemComponent并将其添加到#placeholder div的方法.

有两点需要注意:

这两个早期的问题提出了类似的问题,但他们的答案要么相当平淡,要么与Angular2的早期(beta)版本相关,而且似乎不再起作用.

angular

8
推荐指数
2
解决办法
1万
查看次数

如何使用 SourceTree 正确压缩提交?

我们使用 Git 作为我们的源代码控制系统,我喜欢定期提交我的代码。这确实意味着当我准备推送到共享存储库时,我已经创建了很多无意义的提交,我想在推送之前将其压缩掉。

使用 SourceTree 应该是一件简单的事情,但我一直遇到问题,即并非所有选定的提交都被压缩在一起。让我展示一些我使用带有一些签入的示例存储库所做的事情的图像:

初始情况

我单击第一个检查并选择“以交互方式重新设置子项”

上下文菜单

所有签入都会出现一个弹出窗口:

弹出

在此弹出窗口中,我单击“第五次”签到并用前 3 次击打壁球,直到屏幕如下所示:

在弹出窗口中被压扁

你会认为一切都很好,但是当点击“确定”按钮时,这就是我最终得到的结果:

最终结果

为什么哦为什么它不包括最终结果中的“第二次”提交?从弹出窗口的外观来看,您会认为这也包括在内。我可以再次做同样的事情来获得第二个,但我无法理解为什么它会以这种方式工作,或者如何一次将它们全部压扁。

任何帮助,将不胜感激。

git atlassian-sourcetree sourcetree

7
推荐指数
1
解决办法
7247
查看次数

如何让 npm 使用符合所有要求的最低版本

我们在一些项目中使用 NodeJS 并面临一个必须有一个简单解决方案的问题(因为其他人似乎没有这个问题)。

在packages.json 中提到了一堆最低版本的依赖项,每个依赖项都可能有自己的重叠依赖项。添加依赖项的默认方式是使用 ^ 运算符,这似乎意味着“兼容”或“相同的主要版本,但次要版本可能不同”。

我理解 npm 的工作方式是npm install采用匹配的最高次要版本。不幸的是,“兼容”并没有像您希望的那样强制执行。

这让我们陷入的情况是,例如在开发人员机器上安装了 1.1.0 版本,但在开发和发布之间引入了一个有错误的新版本 1.2.0。在我们的构建机器上进行了新的构建,最终使用 1.2.0 并且我们引入了一个在开发中不存在的错误。

例如,我们尝试将 ^ 运算符更改为 =,但是当依赖项具有与请求的版本不兼容的子依赖项时,这会给我们带来麻烦。

总而言之,我有点困惑,但是npm install只要有变化,这个东西就会一直困扰着我们,因为如果包已经存在,开发机器不会做任何事情,但是构建机器总是得到新的副本。

我从 NuGet 知道它总是采用符合所有组合要求的最低版本。由于这对于给定的一组依赖项总是相同的,因此我更喜欢这种方法。有没有办法让 npm 也像这样工作?

dependencies dependency-management npm npm-install

7
推荐指数
1
解决办法
763
查看次数