我们正在做一些DDD工作,我正在尝试找到一个很好的实用工具,用于生成具有随机数据或预定义数据的域对象,并填充依赖对象.
用法示例:
var user = DDDObjectFactory.CreateUser();
user.Name = "TestUser";
Run Code Online (Sandbox Code Playgroud)
在我们的世界中,没有组织就不能存在用户,所以如果没有组织,我们也需要创建组织.
对于特定的测试,我可能不关心用户名以外的任何属性,因此这是我指定实际数据的唯一属性,所有其他属性应该具有随机数据.
我有n个元素.为了举个例子,让我们说,7个元素,1234567.我知道有7个!=这些7个元素可能有5040个排列.
我想要一个包含两个函数的快速算法:
f(number)将0到5039之间的数字映射到唯一的排列,并且
f'(置换)将置换映射回其生成的数字.
我不关心数字和排列之间的对应关系,只要每个排列都有自己唯一的数字.
所以,举个例子,我可能会在哪里有功能
f(0) = '1234567'
f'('1234567') = 0
Run Code Online (Sandbox Code Playgroud)
想到的最快的算法是枚举所有排列并在两个方向上创建查找表,这样,一旦创建表,f(0)将是O(1)并且f('1234567')将是查找字符串.然而,这是内存饥饿,特别是当n变大时.
任何人都可以提出另一种算法,它可以快速工作,没有内存缺点吗?
这是一个普遍的问题而不是任何事情.我知道VBScript和Powershell可以做很多相同的事情,每个都做其他事情不能做的事情,但我想知道是否有任何理由仍然学习VBScript或者是否最好的努力学习Powershell.
/亚光
我有各种各样的数据库,我确定要删除一些真正孤立的东西(在这种情况下是一个视图).是否使用正确的SQL:
SELECT r.routine_name,
r.routine_definition
FROM INFORMATION_SCHEMA.ROUTINES r
WHERE r.routine_definition LIKE '%my_view_name%'
Run Code Online (Sandbox Code Playgroud)
它的问题是这些引用没有在存储过程中获取声明,我不知道还有什么.
我发现了我记得的SO问题,但它也没有帮助.这个:
SELECT t.*
FROM SYSCOMMENTS t
WHERE CHARINDEX('my_view_name', t.text) > 0
Run Code Online (Sandbox Code Playgroud)
......很接近 我得到了我知道正在使用视图的存储过程的主体,但是我无法获得实际的过程名称.
我有一个类似日历的ASP.NET MVC应用程序.根据NerdDinner示例,我使用UpdateMethod()更新编辑页面的结果
在我的应用中,某些事件是完全可自定义的,某些事件只能部分自定义.即使编辑部分可自定义事件的编辑表单只有这些字段可用,显然有人可以使用缺少的数据创建自己的表单并发布到我的网站.如果他们这样做,有什么可以阻止某人改变任何/所有领域?更糟糕的是,如果他们试图更改id(主键)怎么办?
感觉UpdateModel()容易受到非常基本的黑客攻击.我的恐惧是合法的还是我缺少的东西?
// POST: /MyEvents/Edit/2
[AcceptVerbs(HttpVerbs.Post), Authorize]
public ActionResult Edit(int id, FormCollection formValues)
{
MyEvent myevent = eventRepository.GetMyEvent(id);
try
{
UpdateModel(myevent);
eventRepository.Save();
return RedirectToAction("Details", new { id = myevent.MyEventId });
}
catch
{
ModelState.AddRuleViolations(myevent.GetRuleViolations());
return View(new MyEventFormViewModel(myevent));
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用一个不可更改的遗留数据库模式,其中一个对象的每个实例在数据库中都有自己的表,并带有相关记录.我需要在useTable每次实例化模型时更改模型,但保留Cake的漂亮缓存,什么不是.
假设我有很多pad对象,每个对象都有几个音符对象(注意belongsTo Pad,Pad hasMany Note).每个打击垫在打击垫表中都有一个记录,但每个记事本在数据库中都有自己的表(称为"pad_ {id}").这个架构是固定的,我必须使用它.
现在我不需要做任何保存,所以我在模型中执行此操作之后才发现支持阅读:
function beforeFind($query_data) {
if(empty($query_data['pad_id'])) {
return false;
} else {
$this->useTable = $query_data['pad_id'];
parent::__construct();
return $query_data;
}
}
Run Code Online (Sandbox Code Playgroud)
这会更改数据库中使用的模型表,并且可以正常工作Core::debug > 0.但是,当它为零时,我认为CakePHP缓存模型代码并且没有正确地更改表.在任何情况下,当我访问/ pads/view/{pad_id}或动态更改此表的任何操作时,我都会收到404错误.我无法弄清楚确切的错误是什么,因为它在我打开调试时工作正常.因此,任何关于调试此问题的指示也会有所帮助.
谢谢!
我创建了以下属性,它抛出InvalidCastException,如果当吸气剂访问ViewState[TOTAL_RECORD_COUNT]了null.
public long TotalRecordCount
{
get { return (long)(ViewState[TOTAL_RECORD_COUNT] ?? -1); }
set { ViewState[TOTAL_RECORD_COUNT] = value; }
}
Run Code Online (Sandbox Code Playgroud)
我的想法是它错误地尝试将对象拆箱ViewState[TOTAL_RECORD_COUNT]到一个int,因为它包含了一个失败long,但我认为这个逻辑可能存在缺陷.我将把它作为练习留给读者指出这个缺陷.
我已经改变了那个属性来阅读
public long TotalRecordCount
{
get { return (long?)ViewState[TOTAL_RECORD_COUNT] ?? -1; }
set { ViewState[TOTAL_RECORD_COUNT] = value; }
}
Run Code Online (Sandbox Code Playgroud)
这只是膨胀.不过,我仍然想知道我的原始版本有什么问题... StackOverflow救援?
请注意,如果我尝试(long)(ViewState[TOTAL_RECORD_COUNT] ?? -1)在立即窗口中执行,我会收到错误消息Cannot unbox 'ViewState[TOTAL_RECORD_COUNT] ?? -1' as a 'long',如果我执行,(ViewState[TOTAL_RECORD_COUNT] ?? -1).GetType().Name我会得到Int32.我可以执行(long)-1并以-1结束Int64......所以这是什么?
在 Java 中调试挂起的应用程序很容易。您可以获取应用程序的内存转储并使用 eclipse jvm dump 分析器来查看线程的状态以及每个线程被阻塞的位置?
C++ 中存在这样的东西吗?
我对此的Google搜索操作未成功,因此出现了以下问题:
我想知道是否可以添加自己的关键字来扩展给定框架中的JavaScript语言。
例如
Object1 extends Object2
Run Code Online (Sandbox Code Playgroud)
在代码中将导致执行此方法
inherit(Object1, Object2)
Run Code Online (Sandbox Code Playgroud)
其中Inherit是一个函数,负责复制原型,添加父级的构造函数等。
这可行吗?如果是这样,怎么办?如果没有,还有其他不错的方法吗?
谢谢。
c# ×3
algorithm ×1
asp.net-mvc ×1
c++ ×1
cakephp ×1
casting ×1
debugging ×1
feasibility ×1
iphone ×1
javascript ×1
math ×1
nhibernate ×1
permutation ×1
php ×1
powershell ×1
scripting ×1
sql ×1
sql-server ×1
t-sql ×1
unboxing ×1
unit-testing ×1
updatemodel ×1
vbscript ×1