我有时会注意到我的父/子对象或多对多关系,我需要调用SaveOrUpdate或者Merge.通常,当我需要调用时,我调用SaveOrUpdate的异常Merge与不首先保存的瞬态对象有关.
请解释两者之间的区别.
我习惯使用atlas,首选(据我所知)方法是使用xml注释,例如:
/// <summary>
/// Method to calculate distance between two points
/// </summary>
///
/// <param name="pointA">First point</param>
/// <param name="pointB">Second point</param>
///
function calculatePointDistance(pointA, pointB) { ... }
Run Code Online (Sandbox Code Playgroud)
最近我一直在寻找其他第三方JavaScript库,我看到的语法如下:
/*
* some comment here
* another comment here
* ...
*/
function blahblah() { ... }
Run Code Online (Sandbox Code Playgroud)
作为奖励,如果有任何可以读取"首选"评论风格的JavaScript API生成器,请告诉我.
我是一个IIS的人,知道它就像使用http:// [computername] / webapp的路径一样简单.但是,我似乎无法弄清楚如何使JSP应用程序成为可能我是写在Tomcat下运行.是否需要在某处设置配置设置?
我习惯使用Atlas.最近我开始转换到jQuery,有时甚至是原型.我目前正在研究的项目是使用原型.
在Prototype中,有一种简单的方法来获取浏览器名称和版本吗?我查看了API文档,似乎无法找到它.
我有一个新对象,在一些属性中有一个新对象集合作为IList.我通过sql profiler看到两个插入查询正在执行..一个用于父级,具有新的guid id,另一个用于子级,但是,引用父级的子级上的外键是空guid.这是我在父母身上的映射:
<id name="BackerId">
<generator class="guid" />
</id>
<property name="Name" />
<property name="PostCardSizeId" />
<property name="ItemNumber" />
<bag name="BackerEntries" table="BackerEntry" cascade="all" lazy="false" order-by="Priority">
<key column="BackerId" />
<one-to-many class="BackerEntry" />
</bag>
Run Code Online (Sandbox Code Playgroud)
在Backer.cs类中,我将BackerEntries属性定义为
IList<BackerEntry>
Run Code Online (Sandbox Code Playgroud)
当我尝试SaveOrUpdate传入的实体时,我在sql profiler中得到以下结果:
exec sp_executesql N'INSERT INTO Backer(Name,PostCardSizeId,ItemNumber,BackerId)VALUES(@ p0,@ p1,@ p2,@ p3)',N'@ p0 nvarchar(3),@ p1 uniqueidentifier,@ p2 nvarchar(3 ),@ p3 uniqueidentifier',@ p0 = N'qaa',@ p1 ='BC95E7EB-5EE8-44B2-82FF30F5176684D',@ p2 = N'qaa',@ p3 ='18FBF8CE-FD22-4D08-A3B1-63D6DFF426E5'
exec sp_executesql N'INSERT INTO BackerEntry(BackerId,BackerEntryTypeId,Name,Description,MaxLength,IsRequired,Priority,BackerEntryId)VALUES(@ p0,@ p1,@ p2,@ p3,@ p4,@ p5,@ p6,@ p7) ',N'@ p0 uniqueidentifier,@ p1 …
到目前为止,我只是将javascript字符串传递给我的Web方法,这些方法通常被解析为Guids.但现在我有一个接受IList ...的方法在客户端上,我构建这个对象数组,然后尝试传递它,如:
$.ajax({
type: 'POST',
url: 'personalization.aspx/SetPersonalization',
data: "{'backerEntries':" + backerEntries + "}",
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: postcardManager.SetPersonalizationComplete
});
Run Code Online (Sandbox Code Playgroud)
帖子:
{'backerEntries':[object Object],[object Object],[object Object]}
Run Code Online (Sandbox Code Playgroud)
错误响应:
Invalid JSON primitive: object.
Run Code Online (Sandbox Code Playgroud)
出于某种原因,jquery似乎没有将我的数组转换为json字符串?有什么想法吗?我试着在backerEntries和{}周围放置[],以及{[]}只是在绝望中.我错过了一些明显的东西吗?
我正在使用原型,我找不到任何内置的扩展来设置或检索cookie.谷歌搜索了一下之后,我看到了几种不同的方法.我想知道你认为在JavaScript中获取cookie的最佳方法是什么?
假设我有一个列表:
IList<int> originalList = new List<int>();
originalList.add(1);
originalList.add(5);
originalList.add(10);
Run Code Online (Sandbox Code Playgroud)
另一个清单......
IList<int> newList = new List<int>();
newList.add(1);
newList.add(5);
newList.add(7);
newList.add(11);
Run Code Online (Sandbox Code Playgroud)
如何更新originalList以便:
这样 - 制作originalList的内容:
{ 1, 5, 7, 11 }
Run Code Online (Sandbox Code Playgroud)
我问的原因是因为我有一个带有孩子集合的对象.当用户更新此集合时,而不是仅删除所有子项,然后插入他们的选择,我认为如果我只是对添加或删除的子项执行操作,而不是拆除整个集合,并插入newList孩子们好像都是新手.
编辑 - 抱歉 - 我写了一个可怕的标题......我应该写'最少量的代码'而不是'有效'.我认为我已经把很多答案扔掉了.他们都很棒......谢谢!
我有一个类型为Breadcrumb的IList,它只是一个具有NavigationTitle,NavigationUrl和IsCurrent属性的轻量级类.它缓存在网络服务器上.我有一个方法可以构建当前的痕迹路径,直到第一个将IsCurrent设置为true的Breadcrumb ...使用下面的代码.它非常难看,绝对是一个快速的解决方案,但我很好奇,这可以很容易地重构为LINQ吗?
IList<Breadcrumb> crumbs = new List<Breadcrumb>();
bool foundCurrent = false;
for (int a = 0; a < cachedCrumbs.Count; a++)
{
crumbs.Add(crumbs[a]);
if (foundCurrent)
{
break;
}
foundCurrent = (crumbs[a + 1] != null && ((Breadcrumb)crumbs[a + 1]).IsCurrent);
}
Run Code Online (Sandbox Code Playgroud) javascript ×3
nhibernate ×2
asp.net ×1
c# ×1
comments ×1
cookies ×1
generic-list ×1
generics ×1
jquery ×1
jsp ×1
linq ×1
localhost ×1
mapping ×1
merge ×1
parent-child ×1
prototypejs ×1
refactoring ×1
session ×1
tomcat ×1