小编Gab*_*Roy的帖子

LocalDB:你如何删除它?

设置:实体框架代码首先到新数据库.

场景:我正在玩EF,我在数据库中添加了一堆元素.然后我改变了实体模型,虽然我知道我可以进行迁移,但我只是想从头开始,基本上从地球上擦除数据库.

默认使用的数据库是(localdb)\ v11.0.

我的问题是:

我可以去某个地方只删除一个文件,或者启动某种管理器删除该数据库并从头开始?

c# sql-server-express visual-studio

53
推荐指数
5
解决办法
3万
查看次数

在IDiposable类的Dispose方法中从外部事件取消注册是一种好习惯吗?

我阅读了解释如何使用Dispose模式的优秀答案,以及它为什么以这种方式工作.

正确使用IDisposable接口

该帖明确指出您希望在两种不同的场景中使用Dispose模式:

  1. 摆脱非托管资源(因为我们必须)
  2. 摆脱托管资源(因为我们想要帮助)

我的问题是:

  • 当一个对象在其整个生命周期中订阅一个外部事件时,在Dispose方法中从该事件中取消注册也是常见/好的做法吗?你会为此目的实现IDisposable接口吗?

.net c#

9
推荐指数
1
解决办法
3137
查看次数

你如何使用Ember JS中的多个模型(没有Ember数据)?

我创建了一个小例子来尝试使多个模型在没有Ember Data的情况下工作.

App = Ember.Application.create();

App.Router.map(function () {
    this.resource('employees', function () {
        this.route('employee');
    });
});

App.Employee = Ember.Object.extend({});

App.Employee.reopenClass({
    findAll: function () {
        return $.getJSON("http://localhost/api/employee").then(
            function (response) {
                var employees = [];
                response.forEach(function (child) {
                    employees.push(App.Employee.create(child));
                });
                console.log(employees.join('\n'));
                return employees;
            }
        );
    }
});

App.EmployeesController = Ember.ArrayController.extend({});

App.EmployeesRoute = Ember.Route.extend({
    model: function () {
        return App.Employee.findAll();
    }
});
Run Code Online (Sandbox Code Playgroud)

把手:

<script type="text/x-handlebars">
    <p>Application template</p>
    {{#linkTo employees}}<button>Show employees</button>{{/linkTo}}
    {{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="employees">
    <p>Employees template</p>
    {{#each controller}}
    <p>{{Name}}</p>
    {{/each}}
    {{outlet}}
</script>
Run Code Online (Sandbox Code Playgroud)

当我 …

ember.js

9
推荐指数
1
解决办法
1421
查看次数

TFS 2013自动构建:有没有办法从src文件夹运行测试

我目前正在使用TFS 2013中的默认构建过程模板进行自动构建.

我已经将OutputLocation参数配置AsConfigured为获得与我的Visual Studio解决方案相同的文件夹结构(解决方案中有多个项目,我不希望它们全部放在同一个文件夹中).

问题是,当构建过程尝试运行测试时,它会查找该bin文件夹下的任何程序集,而我的构建配置会使它只有一个src文件夹.

有没有办法指定查看src文件夹?使用AsConfigured设置时,它不应该是默认值吗?

编辑:为了说清楚,运行TFS自动构建(src,bin,tst)时通常会生成3个文件夹.使用AsConfigured作为输出位置时,没有bin文件夹.我尝试了一个建议,需要更改Test sources spec构建过程的设置,我得到了和以前一样的问题:

There were no matches for the search pattern C:\Builds\8\MyProject\MyBuildDefinition\bin\***test*.dll
Run Code Online (Sandbox Code Playgroud)

tfs visual-studio visual-studio-2013 tfs2013

9
推荐指数
1
解决办法
4391
查看次数

WebBrowser控件:导航到网页已取消

建立

  • Windows 8(完整)平板电脑
  • .NET 2.0应用程序

我正在开发一个项目,其中4个WebBrowser控件在加载应用程序时同时导航到某个网页.网页具有相同的HTML,但来自不同的Web服务器.

问题是其中一些页面在WebBrowser控件中显示"导航到网页已取消"消息.这仅在应用程序启动时发生.我已经实现了这里描述的解决方案来获取返回的状态代码,奇怪的是,它是200 = OK状态.

当我刷新页面时,它突然正常工作.我怀疑问题可能是由同时导航造成的,但我不知道如何验证这一点.

有任何想法吗?

.net c# webbrowser-control

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

Web API OData:您如何在单个实体上进行扩展?

我已多次阅读 两篇文章,试图找出$expand在单个实体上使用查询选项的方法,但在我尝试过的每一种方式中,我似乎都无法使其工作.所有其他查询选项都有效,$expand目前也可用于收集结果.

模型:玩家实体具有一个名为Stats的导航属性,其中每个对象包含给定年份的该玩家的统计数据.

我用这种方式设置了OData:

config.EnableQuerySupport();

ODataModelBuilder modelBuilder = new ODataConventionModelBuilder();
modelBuilder.EntitySet<Player>("OPlayer");
modelBuilder.EntitySet<PlayerStatistics>("OPlayerStats");

Microsoft.Data.Edm.IEdmModel model = modelBuilder.GetEdmModel();
config.Routes.MapODataRoute("ODataRoute", "odata", model);
Run Code Online (Sandbox Code Playgroud)

最初,我以这种方式设置了我的控制器:

public class OPlayerController : EntitySetController<Player, int>
{
    private readonly DatabaseContext _db = new DatabaseContext();

    protected override Player GetEntityByKey(int key)
    {
        return _db.Players.FirstOrDefault(p => p.PlayerId == key);
    }

    public override IQueryable<Player> Get()
    {
        return _db.Players.AsQueryable();
    }

    protected override void Dispose(bool disposing)
    {
        _db.Dispose();
        base.Dispose(disposing);
    }
}
Run Code Online (Sandbox Code Playgroud)

使用此配置,我可以进行以下查询:

  • /odata/OPlayer(600)
  • /odata/OPlayer
  • /odata/OPlayer?$expand=Stats

但显然不是(结果没有扩大):

  • /odata/OPlayer(600)?$expand=Stats

这两篇文章都提到为了支持它,你必须向你的控制器添加一个方法(action?),如下所示:

[Queryable] …
Run Code Online (Sandbox Code Playgroud)

c# odata asp.net-web-api

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

无需等待结果即可从Web API调用另一个Web API

有没有办法Http在我自己的Web API中激活对外部Web API的调用而无需等待结果?

我的场景是我真的不在乎调用是否成功,我不需要该查询的结果.

我目前在我的一个Web API方法中做了类似的事情:

var client = new HttpClient() { BaseAddress = someOtherApiAddress };
client.PostAsync("DoSomething", null);
Run Code Online (Sandbox Code Playgroud)

我不能把这段代码放在一个using语句中,因为在这种情况下调用不会通过.我也不想调用.Result()该任务,因为我不想等待查询完成.

我试图理解做这样的事情的含义.我全身知道这真的很危险,但我不确定为什么.例如,当我的初始查询结束时会发生什么.将IIS处置线程和客户端对象,这会导致查询的另一端出现问题吗?

c# asp.net-web-api

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

ember.js中的多个动态段

我目前的路线定义如下:

App.Router.map(function() {
    this.resource('players', { path: ':page_id' }, function() {
        this.resource('player', { path: ':player_id' });
    });
});
Run Code Online (Sandbox Code Playgroud)

我的想法是左边有一个玩家名单.显示的播放器名称取决于page_id.在右侧,我根据player_id显示单个玩家及其所有信息.问题是,两者都是独立的,意味着我可以在第三个玩家页面,同时显示列表中的第一个玩家,或根本没有玩家.

我一直在尝试做的是这样的事情,这是PlayersController中的一个方法,当我点击进入下一个播放器页面时被调用:

doTransition: function() {
    var players = App.Player.findAllForPage(this.playersPerPage, this.currentOffset);
    players.reopen({
        id: this.currentOffset
    });
    var playerController = this.get('controllers.player');
    var currentPlayer = playerController.getWithDefault('content');
    if (currentPlayer) {
        this.transitionToRoute('player', players, currentPlayer);
    } else {
        this.transitionToRoute('players', players);
    }    
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试做的事情:当我点击进入下一个玩家页面时,如果当前没有玩家显示,则转换到PlayersRoute,否则转换到PlayerRoute,以便在转换完成后仍然显示玩家.

问题:有时currentPlayer变量并不总是为null,即使当前没有显示任何播放器.有没有办法解决这个问题,也许是从某个地方获取当前路线?

ember.js

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

如果线程没有修改该元素,是否可以从另一个线程访问UI元素?

假设在实例化表单/ control/element(通常是主线程)的线程中运行的代码不会同时修改/访问该元素,是否可以:

  1. 获取TextBox的Text属性.

  2. 枚举ListView.

  3. 订阅Form的Closing事件.(知道将从实例化该表单的线程调用钩子)

我已经尝试了所有3并且程序似乎没有抱怨它.我一直认为你必须调用任何想要远程触摸任何UI相关(读或写)的调用.

我非常清楚为什么在修改元素时需要使用IsInvokeRequired/Invoke模式,但我不明白为什么访问属性/事件会导致任何问题.

c# multithreading winforms

3
推荐指数
1
解决办法
459
查看次数

KeyVault GetSecretAsync永远不会返回

在Web应用程序中使用KeyVault的示例代码中包含以下代码:

public static async Task<string> GetSecret(string secretId)
{
    var secret = await keyVaultClient.GetSecretAsync(secretId);
    return secret.Value;
}
Run Code Online (Sandbox Code Playgroud)

我已将KeyVaultAccessor示例中包含的对象合并到我的应用程序中以进行测试.该调用作为对我的一个web api控制器方法的查询的一部分执行:

var secret = KeyVaultAccessor.GetSecret("https://superSecretUri").Result;
Run Code Online (Sandbox Code Playgroud)

不幸的是,调用永远不会返回,查询将无限期挂起......

可能是什么原因,因为坦白说我不知道​​从哪里开始......?

.net c# azure async-await

3
推荐指数
3
解决办法
6785
查看次数

实体框架在不同的集合中多次引用同一对象

我刚刚玩实体框架的这个Code First示例,我遇到了一个我不明白的问题.假设POCO对象和数据库上下文与示例中的相同,并且我在应用程序的入口点中有以下代码:

var blog = new Blog { Name = "My Blog" };
var post = new Post {Title = "A Random Post", Blog = blog};
blog.Posts = new List<Post> {post};
db.Blogs.Add(blog);

var blog2 = new Blog {Name = "Another Blog", Posts = new List<Post> {post}};
db.Blogs.Add(blog2);

db.SaveChanges();

// Display all Blogs from the database
var query = from b in db.Blogs
            orderby b.Name
            select b;

Console.WriteLine("All blogs in the database:");
foreach (var item in query)
{
    Console.WriteLine(item.Name); …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework

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