我想知道在代码中处理父>子对象的ID是否存在最佳编码实践,其中DB记录使用自动递增的int作为ID(在初始保存时).当然,在代码中你无法猜出这个ID是什么,因此必须将其留空,并且可能在事务中保存所有这些项目首先获取父ID,然后在保存它们之前将其设置在所有子项上
另一方面,Guids在代码中处理起来要容易得多,因为当然你可以先生成Id并将其设置在所有内容上并保存而不用担心.
是否有一个很好的简单方法来处理代码中的对象使用自动注入作为他们的数据库键?
谢谢
我需要比较两个对象,但在一次点击中比较它们的一些属性.这不是为了排序,而是为了确认是否有任何变化; 因为一个是旧保存的实例,第二个是同一事物的新导入实例
我认为通过编写自定义比较器可以获得最佳效果.只是有点困惑,是否要做IComparer,或IComparable,或什么tbh.
谢谢
NAT
我正在尝试使用以下代码生成Excel文件:
public static Stream GenerateFileFromClass<T>(IEnumerable<T> collection, int startrow, int startcolumn, byte[]templateResource)
{
using (Stream template = new MemoryStream(templateResource))//this is an excel file I am using for a base/template
{
using (var tmpl = new ExcelPackage(template))
{
ExcelWorkbook wb = tmpl.Workbook;
if (wb != null)
{
if (wb.Worksheets.Count > 0)
{
ExcelWorksheet ws = wb.Worksheets.First();
ws.Cells[startrow, startcolumn].LoadFromCollection<T>(collection, false);
}
return new MemoryStream(tmpl.GetAsByteArray());
}
else
{
throw new ArgumentException("Unable to load template WorkBook");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这就像一种享受,但是..我想忽略我的类集合中的一些属性,因此它与我的模板匹配.我知道LoadFromCollection将根据类的公共属性在Excel文件中生成列,但是当我使用Entity Framework加载类时,如果我将该字段标记为私有,那么EF会抱怨 - …
我在母版页内有一个简单的页面(好吧,在母版的母版中).
在顶级主文件中,我有head标记runat="server",有许多位,如脚本,样式表等,还有contentplaceholder.这里没有标题标签.
在使用此主数据的页面中,占位符的内容包含其中的
<title>pagename</title>位.我真的必须把它放在那里.
不幸的是,当页面被渲染时,我得到了我的标题,这一切都很好,但也获得了第二个空白的标题标签 - 我认为在那里被.NET抛弃.
有没有办法阻止这个第二个标题标签出来?
在Firefox和Chrome中会出现此问题,但Safari很好.但是,在兼容模式下,IE8不会在顶部加载叠加层(它只是位于顶部,向下滚动内容 - 尽管我猜这是因为叠加层位于标记的顶部).
它也没有显示我试图显示的图像,但是将重叠加载图像缩小到屏幕左上角的任何内容.我正在使用标准的colorbox-min和随之而来的CSS.
检查IE8开发工具中的标记似乎暗示内容实际上没有加载到cboxLoadedContent div中.
$(document).ready(function() {
$('a[rel="preview"]').colorbox(
{
photo: true
, maxWidth: '95%'
, maxHeight: '95%'
, photoScaling: true
}
);
});
Run Code Online (Sandbox Code Playgroud)
基本上页面是一个媒体图像列表,当你点击一个它给你预览,并允许你滚动页面上的那些,至少它在FF做了一点点截图,因为它缩小了叠加的东西http:/ /dumpt.com/img/viewer.php?file=7s2zwoxozzf7666h0fzc.png
有人有主意吗?
我希望我的解释不是很好,所以也许我可以拍一部电影或者其他东西.
我试图自己解决这个问题,但我不得不在VB中做到这一点,这让我更加困惑.基本上我有一些物体
List<Pax> paxes;
Run Code Online (Sandbox Code Playgroud)
其中一个Pax属性是Voucher,而Voucher又有一些属性,如ID和Price
我想要做的是从Pax列表中选择一个凭证列表及其累积价格
so from
Pax1 - Voucher{ VoucherDesc = 10 percent off, VoucherCode = 10-OFF, Price = £150}
Pax2 - Voucher{ VoucherDesc = 10 percent off, VoucherCode = 10-OFF, Price = £120}
Pax3 - Voucher{ VoucherDesc = Buy one get one free, VoucherCode = BOGOF, Price = £300}
to
{10 percent off, 10-OFF, £270 }
{Buy one get one free, BOGO, £300 }
Run Code Online (Sandbox Code Playgroud)
我确信这可以通过一些linq和分组来实现,但我完全被难倒了
假设它是沿着的
dim newlist = from p in paxes group p by p.VoucherCode into …Run Code Online (Sandbox Code Playgroud) 我有一个使用游标的SQL Server sp:
DECLARE TestCursor CURSOR FOR
SELECT
tblHSOutcomes.strOutcomeName,
tblHSData.fkHSTest
FROM
tblHSData
INNER JOIN tblHSOutcomes ON tblHSData.fkOutcome = tblHSOutcomes.uidOutcome
INNER JOIN tblHSTests ON tblHSData.fkHSTest = tblHSTests.uidTest
WHERE
tblHSData.fkEpisode = @uidHSEpisodes
OPEN TestCursor
FETCH NEXT FROM TestCursor
INTO @Result, @TestID
WHILE @@FETCH_STATUS = 0
BEGIN
...etc
Run Code Online (Sandbox Code Playgroud)
它工作正常,但是在继续处理之前能够检查游标查询是否有任何记录会很好.如果有@@ var我可以用来检查这个吗?我知道有@@ RowCount - 但这只有当前处理的行数 - 所以不是很有用
理想情况下,我希望能够做这样的事情:
if @@cursorQueryHasRecords
BEGIN
WHILE @@FETCH_STATUS = 0
BEGIN
...etc
Run Code Online (Sandbox Code Playgroud)
谢谢
NAT
我有一个asp.net页面上有相当数量的东西,它在jquery对话框iframe中打开另一个页面.通过以下方式打开对话框
<a onclick="OpenDialog(params);return false;">click to open dialog<a/>
function OpenDialog(params){
var url ='Detail.aspx?params;
$('#frmDialog').attr('src', url);
$( "#dialog-modal" ).dialog({
height: 500,
width: 950,
title: 'Details',
modal: true,
close: function(a,b){refreshPage();}
});
return false;
}
Run Code Online (Sandbox Code Playgroud)
除了单击链接之外,所有工作都完美无缺,"父"页面在屏幕高度跳跃,然后您必须向上滚动到对话框 - 这是在IE 8和9中 - 似乎没有问题FF
使用jquery:1.8.0 ui:1.8.23
有任何想法吗?谢谢
我有一个客户端应用程序正在使用WCF服务,该服务正在接受并返回一些复杂的类型参数.这些复杂类型保存在客户端应用程序和WCF服务都引用的单独程序集中.问题是当我在客户端应用程序中添加服务引用时,生成的引用类构建自己的复杂参数类型版本因此我无法传递原始类型定义的程序集中的类型.不确定这是否完全可以理解..
问题是..我是否必须编写某种反射深度复制例程来有效地从原始类型构建服务引用生成的类?还是有更好的选择
任何帮助,一如既往地非常愉快地收到
NAT
不确定该问题的名称,但问题如下:
我在IIS 6上部署WCF服务,该服务将由外部源使用.它所在的盒子是外部托管的,但有一个DC,因此在我的网络上有效(' mydomain '),在内部称为' prod '.该服务需要通过SSL运行,因此我们获得了服务将响应的域的SSL证书:service.oursite.com
DNS已全部过滤掉了,我确实可以点击https://service.oursite.com/service.svc上的服务 ,它会启动小svcutil链接.问题是链接指向的地址不是 https://service.oursite.com/service.svc?wsdl,因为我希望
相反
https://prod.mydomain.com/service.svc?wsdl 当然SSL保释,因为证书不适用于此,如果我点击wsdl所有schemaLocation链接都是错误的,再次指向内部而不是外部名称
问题是: 为什么这样做?我该怎么做呢?
这是在配置中添加内容的问题吗?(请说是:))
最感激的任何帮助
如果它有帮助这里是配置
<services>
<service name="CBBookingService.CBBookingService" behaviorConfiguration="CBBookingService.CBBookingServiceBehavior">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="TransportSecurity" contract="CBBookingService.ICBBookingService" />
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="BasicSecurity" maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
<binding name="TransportSecurity" maxReceivedMessageSize="2147483647">
<!--https-->
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="CBBookingService.CBBookingServiceBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false"/>
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>
</serviceBehaviors>
</behaviors>
Run Code Online (Sandbox Code Playgroud)