小编Fed*_*man的帖子

"具有Count = n的此SqlParameterCollection的索引n无效"或"外键不能为空"

我已经成功使用NHibernate已经有一段时间了,并且已经能够通过我开发的应用程序解决了很多陷阱,并且它正在生产中运行.不过,最近的障碍确实让我摸不着头脑.

最近,我不得不使用一些新的类来扩展类库,这些类作为子项嵌套到一些已经存在的类中.我刚刚为成功使用的聚合映射复制了相同的模型,但这次它不起作用.

现在,当我在父映射文件中使用以下内容时:

  <bag name="SeaInfoItems" table="EDIImport_SeaInfo" lazy="false" cascade="save-update"> 
     <key column="EDI_FK_OWNERID"/> 
     <one-to-many class="FargoGate.AppLib.EdiImportSeaInfo, FargoGate.AppLib"/> 
  </bag> 
Run Code Online (Sandbox Code Playgroud)

我可以选择在儿童班中使用:

  <property name="EDI_FK_OWNERID" column="EDI_FK_OWNERID" /> 
Run Code Online (Sandbox Code Playgroud)

...这给了我臭名昭着的"这个SqlParameterCollection的无效索引n与Count = n"错误.

或者我尝试使用谷歌搜索后发现的这个解决方案:

   <property name="EDI_FK_OWNERID" column="EDI_FK_OWNERID" insert="false" update="false" /> 
Run Code Online (Sandbox Code Playgroud)

...它给了我一个"无法将值NULL插入列'EDI_FK_OWNERID'...列不允许空值." 错误.

所以基本上我必须在害虫和霍乱之间做出选择.

我没有得到的是它对已经存在的聚合类完美无缺,我真的无法发现差异.唯一的问题是这个外键(EDI_FK_OWNERID)可以引用两个不同的父表.我知道,糟糕的数据库设计,但我没有设计它,我的任务是开发它,无论好坏.我无法改变数据库设计.

另一个区别是我完全从已经存在的子类(映射以及类成员)中删除了外键引用.当然,我试图效仿,但无济于事.

我还发现其中一个新类(非常小)也可以正常工作.但我也看不出这里有什么区别.我很难过!

有人有线索吗?

mapping nhibernate foreign-key-relationship

28
推荐指数
1
解决办法
2万
查看次数

Visual Studio/.NET:使用wsdl添加了基于Java的Web服务引用,但无法找到它

我正在尝试使用由它生成的WSDL向我的.NET项目添加基于java的Web服务引用,但每次添加它时,我都无法从代码中找到它,更不用说调用它的一个web方法了.

我可以添加它,它显示在我的项目树中,但我看不到方法,我无法从我的代码中找到或访问web服务.当我右键单击它并尝试在对象浏览器中查看它时,它不会显示.是什么赋予了?

这是wsdl的内容(我省略了数据类型以保持小):

  <?xml version="1.0"?>
  <wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
        xmlns:tns="http://logiasoftware.fi/HandyManifestFargoOnRamp2010_01/" 
        targetNamespace="http://logiasoftware.fi/HandyManifestFargoOnRamp2010_01/">

      <wsdl:message name="Response">
          <wsdl:part name="DefaultInput" element="tns:Response"/>
      </wsdl:message>
      <wsdl:message name="Request">
          <wsdl:part name="DefaultOutput" element="Request"/>
      </wsdl:message>

    <wsdl:portType name="HandyManifestFargoOnRampServiceSoap">
        <wsdl:operation name="SaveFCO">
            <wsdl:input message="tns:Request"/>
              <wsdl:output message="tns:Response"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="HandyManifestFargoOnRampServiceSoap" type="tns:HandyManifestFargoOnRampServiceSoap">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="SaveFCO">
            <soap:operation soapAction="http://logiasoftware.fi/HandyManifestFargoOnRampService/SaveFCO" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
              <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="GenericSoapFault">
                <soap:fault name="GenericSoapFault" use="literal"/>
                </wsdl:fault>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="HandyManifestFargoOnRampService">
        <wsdl:port name="HandyManifestFargoOnRampServiceSoap" binding="tns:HandyManifestFargoOnRampServiceSoap">
            <soap:address location="http://logiasoftware.fi/HandyManifestFargoOnRampService/"/>
        </wsdl:port>
    </wsdl:service>
  </wsdl:definitions>
Run Code Online (Sandbox Code Playgroud)

UPDATE

尝试通过svcutil.exe运行wsdl给了我一些有趣的错误消息:

 R1014: The children of the soap:Body element in a …
Run Code Online (Sandbox Code Playgroud)

.net java web-services visual-studio-2008

10
推荐指数
0
解决办法
1672
查看次数

Facebook页面自动"喜欢"URL(用于QR码)

我想知道是否可以构建一个自动喜欢Facebook页面的URL.然后,此URL可以转换为QR码,以便人们可以通过智能手机阅读来自动"喜欢"您的页面.

我一直在搜索,但到目前为止我能找到的商业服务包括Spotlike,Likify,Social QR Code等.我不想要一个依赖这种商业服务的解决方案.

我开始怀疑Facebook没有出于可理解的原因(滥用等)启用这种可能性.尽管如此,我还是希望以某种方式做到这一点,即使只是创建我自己的中介服务.在后一种情况下,创建这样的服务基本上需要什么?


编辑:

我已经尝试过这样的URL:http://www.facebook.com/plugins/like.php?href = http://facebook.com/interlinkONE

这个URL(当编码为QR码时)在iPhone上并没有真正给出理想的结果,因为它显示了一个空白页面,带有一个几乎看不到的小"喜欢"按钮.此外,即使我尝试单击"喜欢"按钮,它似乎也不起作用.

资料来源:http://qreateandtrack.com/2010/10/18/how-to-create-qr-codes-for-the-facebook-like-button/

url facebook qr-code smartphone

9
推荐指数
1
解决办法
11万
查看次数

XSLT:如何从结果中排除空元素?

我有一个相当复杂的xslt表使用模板将一个xml格式转换为另一个xml格式.但是,在生成的xml中,我需要排除所有空元素.怎么做的?

这就是基础xslt的样子:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:far="http://www.itella.com/fargo/fargogate/" xmlns:a="http://tempuri.org/XMLSchema.xsd" xmlns:p="http://tempuri.org/XMLSchema.xsd">
    <xsl:import href="TransportCDMtoFDM_V0.6.xsl"/>
    <xsl:import href="ConsignmentCDMtoFDM_V0.6.xsl"/>
    <xsl:template match="/">
        <InboundFargoMessage>
            <EdiSender>
                <xsl:value-of select="TransportInformationMessage/SenderId"/>
            </EdiSender>
            <EdiReceiver>
                <xsl:value-of select="TransportInformationMessage/RecipientId"/>
            </EdiReceiver>
            <EdiSource>
                <xsl:value-of select="TransportInformationMessage/Waybill/Parties/Consignor/Id"/>
            </EdiSource>
            <EdiDestination>FARGO</EdiDestination>
            <Transportations>
                <xsl:for-each select="TransportInformationMessage/TransportUnits/TransportUnit">
                    <xsl:call-template name="transport"/>
                </xsl:for-each>
                <xsl:for-each select="TransportInformationMessage/Waybill/TransportUnits/TransportUnit">
                    <xsl:call-template name="transport"/>
                </xsl:for-each>
                <xsl:for-each select="TransportInformationMessage/Waybill">
                    <EdiImportTransportationDTO>
                        <Consignments>
                            <xsl:for-each select="Shipments/Shipment">
                                <xsl:call-template name="consignment"/>
                            </xsl:for-each>
                        </Consignments>
                        <EdiTerminalDepartureTime>
                            <xsl:value-of select="DatesAndTimes/EstimatedDepartureDateTime"/>
                            <xsl:value-of select="DatesAndTimes/DepartureDateTime"/>
                        </EdiTerminalDepartureTime>
                        <EdiAgentTerminalArrivalDate>
                            <xsl:value-of select="DatesAndTimes/EstimatedArrivalDateTime"/>
                            <xsl:value-of select="DatesAndTimes/ArrivalDateTime"/>
                        </EdiAgentTerminalArrivalDate>
                        <EdiActivevehicle>
                            <xsl:value-of select="Vehicle/TransportShiftNumber"/>
                        </EdiActivevehicle>
                        <EdiConveyerZipCodeTown><xsl:text> </xsl:text></EdiConveyerZipCodeTown>
                    </EdiImportTransportationDTO>
                </xsl:for-each>
            </Transportations>
        </InboundFargoMessage>
    </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

需要添加什么,以便省略空元素?

例如,生成的xml中的代码段:

<?xml version="1.0" encoding="UTF-8"?>
<InboundFargoMessage xmlns:p="http://tempuri.org/XMLSchema.xsd" …
Run Code Online (Sandbox Code Playgroud)

xml xslt

8
推荐指数
1
解决办法
2万
查看次数

HTML5视频:如何在Chrome for Android中启用*非静音*自动播放

我正在为当地博物馆制作一个简单的解决方案,希望游客能够与安装在平板电脑上的信息视频互动.视频只是嵌入在简单的HTML5页面上,并且应该在页面加载时自动播放.

然而,凭借其无限的智慧,如果视频没有静音,谷歌显然决定不在 Chrome for Android上启用自动播放.他们的推理显然是资源/带宽昂贵,"用户"(谁?)不喜欢它.

换句话说:它适用于Chrome桌面版等,但是当您没有在标记中添加关键字"muted"时,它就不会在Android设备上自动播放.

这样可行:

 <video id="player" class="player" controls autoplay muted>
Run Code Online (Sandbox Code Playgroud)

但不是这个:

 <video id="player" class="player" controls autoplay>
Run Code Online (Sandbox Code Playgroud)

我坚持使用Chrome的原因是因为我想在主屏幕上将网页作为应用程序/快捷方式运行,以便摆脱所有标签和内容的Chrome界面栏.

所以问题是平板电脑上是否有设置或其他一些技巧来启用非静音自动播放,所以我可以让它工作.或者是否可以让Firefox用于放置在主屏幕上的网址(或者以其他方式摆脱顶部界面栏).

video firefox html5 android google-chrome

6
推荐指数
1
解决办法
3247
查看次数

NHibernate和WCF:性能(会话重用)与并发(并发请求)

我们正在与一组基本上无法改变的相同结构的遗留数据库进行不同的集成.为此,我们添加了一个辅助数据库,用于保存元信息,路由规则和临时保存旧数据库数据等内容.

我们主要使用NHibernate连接数据库.一个应用程序是WCF服务,需要将传入的数据插入到非常宽的嵌套表中(数十列).显然,性能是一个问题,所以我一直希望NHibernate事务尽可能经济.与此同时,并发似乎是一个问题.在生产中,我们开始遇到一些僵局的事务错误(死锁).

我一直在做一个处理这两个问题的平衡行为,但并没有真正消除并发问题.

服务行为设置为一次处理一个请求,如下所示:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode=ConcurrencyMode.Single]
public class LegacyGateService : ILegacyGateService
Run Code Online (Sandbox Code Playgroud)

早些时候,在从互联网上获得一些"灵感"(阅读:复制/粘贴)之后,我最终分别为辅助数据库和遗留数据库添加了一组名为XxxNHibernateUtil的类.这些类控制NHibernate会话,并从预先初始化的SessionFactories生成或重用Sessions.

对于辅助数据库,它看起来像这样:

public static class LegacyGateNHibernateUtil
{
    private static readonly ISessionFactory sessionFactory = BuildSessionFactory();

    private static ISessionFactory BuildSessionFactory()
    {
        try
        {
            Configuration Cfg = new Configuration();
            Cfg.Configure();
            Cfg.AddAssembly("LegacyGate.Persistence");
            return Cfg.BuildSessionFactory();
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    public static ISessionFactory GetSessionFactory()
    {
        return sessionFactory;
    }

    public static ISession GetCurrentSession()
    {
        if (!CurrentSessionContext.HasBind(GetSessionFactory()))
            CurrentSessionContext.Bind(GetSessionFactory().OpenSession());

        return GetSessionFactory().GetCurrentSession();
    }

    public static void DisposeCurrentSession()
    {
        ISession currentSession = CurrentSessionContext.Unbind(GetSessionFactory()); …
Run Code Online (Sandbox Code Playgroud)

nhibernate concurrency performance wcf sessionfactory

5
推荐指数
1
解决办法
4633
查看次数

C#:指向多个整数的引用/指针数组

我想在数组中引用一些短路.我假设我可以创建短裤,然后将它们添加到阵列中.所以......每次更改引用的对象时,都会反映在数组中,反之亦然.做一些试验使我确信它不是那么有效.事实上,看起来价值是转移而不是参考.

下面的代码创建了两个short,将这些作为对象添加到数组中,然后更改原始short.但是,当访问数组中假定的引用short时它没有改变,这使我相信它是一个与原始对象无关的全新对象.

        Console.WriteLine("Testing simple references:");
        short v1 = 1;
        short v2 = 2;
        object[] vs = new object[2];
        vs[0] = v1;
        vs[1] = v2;
        v1 = 1024;
        v2 = 512;
        Console.WriteLine(" v1: " + (short)vs[0]);
        Console.WriteLine(" v2: " + (short)vs[1]);
Run Code Online (Sandbox Code Playgroud)

我在这里误解了一些基本的东西,如果有人可以解释,我会很感激,并且可能会指出一个可以做我想做的解决方案.

c# pointers integer reference short

3
推荐指数
2
解决办法
6599
查看次数