我有一个有Auto-identity (int)
列的实体.作为数据种子的一部分,我想在我的系统中使用"标准数据"的特定标识符值,之后我想让数据库整理id值.
到目前为止,我已经能够IDENTITY_INSERT
将插件批处理设置为On,但实体框架不会生成包含该插件的插入语句Id
.这是有道理的,因为模型认为数据库应该提供值,但在这种情况下,我想提供值.
模型(伪代码):
public class ReferenceThing
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id{get;set;}
public string Name{get;set;}
}
public class Seeder
{
public void Seed (DbContext context)
{
var myThing = new ReferenceThing
{
Id = 1,
Name = "Thing with Id 1"
};
context.Set<ReferenceThing>.Add(myThing);
context.Database.Connection.Open();
context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT ReferenceThing ON")
context.SaveChanges(); // <-- generates SQL INSERT statement
// but without Id column value
context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT ReferenceThing OFF")
}
}
Run Code Online (Sandbox Code Playgroud)
任何人都能提供任何见解或建议吗?
我的应用程序是用MVC5编写的.
我注意到随着应用程序的增长,我的Global.Asax文件正在慢慢填满代码.特别是在Application_EndRequest中存在大量代码,这些代码执行诸如记录,设置响应头和一些安全/身份验证之类的事情.
我想知道这种东西是否可以安全地转移到一组全局过滤器中?我之前没有使用全局过滤器,但它们似乎是一种以可测试和封装的方式执行此类代码的简洁方法.
所以:
谢谢
是否可以覆盖Javascript类中的函数,并调用它的基本实现?我通过使用原型来实现这一目标,但我试图保留一些数据的隐私.
这是我到目前为止所做的,它不起作用.我可以看出为什么它不起作用,但我看不到解决它的方法.我开始怀疑这在javascript中是不可能的(没有跳过很多箍).
另外,我需要支持IE11,所以不能使用ES6.
var NoProto = NoProto || {};
NoProto.Shape = (function(){
var thing = function(name){
var privateData = 'this is a ' + name;
var self = this;
this.base = function(){
return self;
};
this.doStuff = function(){
return privateData;
};
};
return thing;
})();
NoProto.Square = (function(){
var thing = function(colour){
NoProto.Shape.call(this, "square");
this.doStuff = function(){
// this fails (stack overflow)
// ------> how to call the "base" function: doStuff, and preserve the private data?
var val = this.base().doStuff(); …
Run Code Online (Sandbox Code Playgroud)