设置:实体框架代码首先到新数据库.
场景:我正在玩EF,我在数据库中添加了一堆元素.然后我改变了实体模型,虽然我知道我可以进行迁移,但我只是想从头开始,基本上从地球上擦除数据库.
默认使用的数据库是(localdb)\ v11.0.
我的问题是:
我可以去某个地方只删除一个文件,或者启动某种管理器删除该数据库并从头开始?
我阅读了解释如何使用Dispose模式的优秀答案,以及它为什么以这种方式工作.
该帖明确指出您希望在两种不同的场景中使用Dispose模式:
我的问题是:
我创建了一个小例子来尝试使多个模型在没有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)
当我 …
我目前正在使用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) 建立
我正在开发一个项目,其中4个WebBrowser控件在加载应用程序时同时导航到某个网页.网页具有相同的HTML,但来自不同的Web服务器.
问题是其中一些页面在WebBrowser控件中显示"导航到网页已取消"消息.这仅在应用程序启动时发生.我已经实现了这里描述的解决方案来获取返回的状态代码,奇怪的是,它是200 = OK状态.
当我刷新页面时,它突然正常工作.我怀疑问题可能是由同时导航造成的,但我不知道如何验证这一点.
有任何想法吗?
我已多次阅读这 两篇文章,试图找出$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) 有没有办法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处置线程和客户端对象,这会导致查询的另一端出现问题吗?
我目前的路线定义如下:
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,即使当前没有显示任何播放器.有没有办法解决这个问题,也许是从某个地方获取当前路线?
假设在实例化表单/ control/element(通常是主线程)的线程中运行的代码不会同时修改/访问该元素,是否可以:
获取TextBox的Text属性.
枚举ListView.
订阅Form的Closing事件.(知道将从实例化该表单的线程调用钩子)
我已经尝试了所有3并且程序似乎没有抱怨它.我一直认为你必须调用任何想要远程触摸任何UI相关(读或写)的调用.
我非常清楚为什么在修改元素时需要使用IsInvokeRequired/Invoke模式,但我不明白为什么访问属性/事件会导致任何问题.
在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)
不幸的是,调用永远不会返回,查询将无限期挂起......
可能是什么原因,因为坦白说我不知道从哪里开始......?
我刚刚玩实体框架的这个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)