这会发出内部联接,这是我想要和工作的:
var q =
from itm in esdc.items
join itmImg in esdc.itemImages on itm.itemId equals itmImg.itemId
join itmIdent in esdc.itemIdentities on itm.imgIdentityId equals itmIdent.itemIdentityId
join startImgs in esdc.vStartPgImgs on itmImg.imgId equals startImgs.imgId
select ...
Run Code Online (Sandbox Code Playgroud)
这也有效,但发出了交叉连接.我如何获得内部联接?我仔细检查了实体,关系是正确的.
var q =
from itmIdent in esdc.itemIdentities
from itm in itmIdent.items
from itmImg in itm.itemImages
join startImgs in esdc.vStartPgImgs
on itmImg.imgId equals startImgs.imgId
select ...
Run Code Online (Sandbox Code Playgroud)
如果您需要我发布发出的SQL和实体设置,请告诉我.
下面是一篇关于.net框架模式使用的文章.我不确定我是否理解下面摘录中的粗体部分.是否暗示如果更改创建对象的细节,您(可能)更改构造函数参数?
在框架中有许多情况下,您可以获取结构或类的新实例,而无需自己调用其构造函数.System.Convert类包含许多像这样工作的静态方法.例如,要将整数转换为布尔值,可以调用Convert.ToBoolean并传入整数.如果整数为非零,则此方法调用的返回值为新布尔值设置为"true",否则为"false".Convert类为您创建具有正确值的布尔值.其他类型转换方法类似地工作.Int32和Double上的Parse方法将这些对象的新实例设置为仅给定字符串的适当值.
这种创建新对象实例的策略称为工厂模式.您可以要求对象工厂为您创建实例,而不是调用对象的构造函数.这样,工厂类可以隐藏对象创建的复杂性(比如如何从字符串中解析Double).如果你想改变创建对象的细节,你只需要改变工厂本身; 您不必更改调用构造函数的代码中的每个位置.
我在其他Windows机器上安装了msysgit,没有任何问题.在这个Vista 64位Ultimate盒子上,我安装了3个最新版本的msysgit.在所有三个安装中,当我在这里执行"git bash"时,我在命令窗口中得到了这个:
sh.exe": fork: Permission denied
sh.exe"-3.1$
Run Code Online (Sandbox Code Playgroud)
git命令不起作用.我收到相同的权限被拒绝消息.关于如何解决这个问题的任何线索?
更新
此外,当我在这里"git gui"时 - 我得到:
Cannot determine Git version.
couldn't execute "C\...\git-core\git.exe
Git Gui requires Git 1.5.0 or later
Run Code Online (Sandbox Code Playgroud)
我使用的是比1.5.0更新的版本.
我有一个ASP.NET按钮.单击该按钮时,我希望在按钮的服务器端代码运行后显示模式弹出窗口.我不想使用ASP.NET Ajax控件工具包模式弹出扩展器.
使用ASP.NET Ajax,我可以挂钩到结束请求事件.有没有办法在没有ASP.NET Ajax的情况下执行此操作.只是jQuery?在回发后,我基本上想在服务器端点击代码运行后运行一些javascript.
我安装了Subversion 1.5.x,然后安装了TortoiseSVN 1.6.x.
一切都很好,只使用1.5.x命令行实用程序.在熟悉svn一段时间后,我使用TortoiseSVN客户端进行提交,但是命令行客户端现在给了我一个太老的客户端,在所有命令上得到一个更新的客户端错误.
1 - 我是否损坏了我的工作副本?我不这么认为,因为TortoiseSVN工作得很好.
2 - 我想我只需要下载1.6.x命令行客户端并使用它,如果我想在TortoiseSVN的同时使用命令行svn.根据TSVN常见问题解答,无论这意味着什么,客户都可以彼此"安装".
如果是这样,我该如何绕过旧的命令行客户端?
我假设我只是通过直接运行它或更改环境路径来运行较新的svn.exe,或者安装包将把较新的svn目录放在路径的末尾.
提前致谢.
此LINQ查询表达式发出左连接并起作用:
from p in Prices
join ip in ItemPrices
on new { p.PriceId, ItemId = 7 } equals
new { ip.PriceId, ip.ItemId }
into priceItemPrice
from pip in priceItemPrice.DefaultIfEmpty()
select new
{
pricesPriceId = p.PriceId,
z = (int?)pip.PriceId,
p.Content,
p.PriceMinQ
}
Run Code Online (Sandbox Code Playgroud)
SQL发出:
-- Region Parameters
DECLARE @p0 Int = 7
-- EndRegion
SELECT [t0].[priceId] AS [pricesPriceId],
[t1].[priceId] AS [z],
[t0].[price] AS [Content],
[t0].[priceMinQ] AS [PriceMinQ]
FROM [price] AS [t0]
LEFT OUTER JOIN [itemPrice] AS [t1]
ON ([t0].[priceId] = [t1].[priceId])
AND …
Run Code Online (Sandbox Code Playgroud) 不使用Cassini,而是使用IIS7来运行ASP.NET应用程序.
调试行为很棘手.有时候它有效,有时则不然.我能够进入global.asax中的应用程序启动事件,但有时我不能.
有时VS2008会打开已发布的global.asax,所以我在VS中打开了两个global.asax实例,源代码和已发布的实例.
我重置了AppDomain和IIS,我无法理解为什么会发生这种情况.有线索吗?
要添加,虽然它不会进入应用程序启动,但我有一个OnChangeEventHandler事件 - 它确实进入了事件处理程序.
如果我将base64字符串写入文件而不使用回车分解它,我会遇到问题吗?
有一段时间我会一次性写作和阅读大字符串遇到困难吗?
现在我存储的字符串的大小大约是100个字符,但它们可以进入10,000+范围 - 这会有问题吗?
提前致谢.
我在VS2008中有一个ASP.NET应用程序,它正在变大,我正在开发和测试IIS7,而不是Cassini/IIS dev,所以当我进行更改时,我会发布,运行和测试.
由于解决方案中不同项目的构建越来越多,因此发布时间越来越长.如果我想做一个简单的更改来说一个aspx文件,而不是发布,我只是修改发布的版本,以避免发布的成本,这是一个痛苦.
有更好/更快的方式吗?有什么东西可以讨论VS2008的最佳实践/高效的发布/运行/测试技术吗?
asp.net ×3
.net ×2
linq ×2
linq-to-sql ×2
ajax ×1
base64 ×1
c# ×1
git ×1
iis-7 ×1
javascript ×1
jquery ×1
modalpopup ×1
msysgit ×1
sql ×1
svn ×1
tortoisesvn ×1
vista64 ×1