小编Jan*_*anW的帖子

WPF应用程序在第一次交互后停止/冻结,如按钮单击

我目前在WPF中遇到问题.UI加载很好,但每当第一次用户交互时,例如按钮点击,应用程序似乎停止,或者如果我有两个按钮显示MessageBox,第一次点击将等待几秒然后显示MessageBox,但任何后续交互都是即时和响应的.

还有其他人经历过这个吗?如果是这样,有什么解决方案吗?

谢谢

c# wpf performance buttonclick intellitrace

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

EntityFramework 4.0:InvalidOperationExeception:违反了多重性约束

我们最近将我们的软件升级到.NET 4.0和EF 4.0(没有自我跟踪实体)(以前的.NET 3.5 SP1).现在,在以前的工作代码中引发了一个新的异常,我们不明白.

我们有一个名为Resident的实体,另一个名为ResidentExtension的实体,它将已经很大的Resident实体扩展为1到(0/1)的关系.以下c#代码在我们的应用程序中生成一个新实体:

Residents resident = new Residents()
   {
       IsNewResident = true,
       ResidentImage = Settings.Default.ResidentCardDefaultMaleImage,
       IsActive = true,
       ResidentCanBeDeleted = true,
       ResidentExtensions = new ResidentExtensions(),
       ResidentMasterDataState = EvoState.Error,
       ResidentBasicDataState = EvoState.Error,
       ResidentBenefactorsDataState = EvoState.Error,
   };
Run Code Online (Sandbox Code Playgroud)

在此声明后直接引发以下异常:

违反了多重约束.关系VOCURA.EntityDataModels.EvocuraCarehomeManagementEntityModel.FK_ResidentExtensions_Residents'的角色'ResidentExtensions'具有多重性1或0..1.

它出现在生成的代码的setter中:

    [XmlIgnoreAttribute()]
    [SoapIgnoreAttribute()]
    [DataMemberAttribute()]
    [EdmRelationshipNavigationPropertyAttribute("EVOCURA.EntityDataModels.EvocuraCarehomeManagementEntityModel", "FK_ResidentExtensions_Residents", "ResidentExtensions")]
    public ResidentExtensions ResidentExtensions
    {
        get
        {
            return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<ResidentExtensions>("EVOCURA.EntityDataModels.EvocuraCarehomeManagementEntityModel.FK_ResidentExtensions_Residents", "ResidentExtensions").Value;
        }
        set
        {
            ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<ResidentExtensions>("EVOCURA.EntityDataModels.EvocuraCarehomeManagementEntityModel.FK_ResidentExtensions_Residents", "ResidentExtensions").Value = value;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我发现的唯一解决方案是首先提交没有扩展名的Resident实体,然后创建ResidentExtension并设置外键(ResidentID)并将其添加到上下文并再次提交.但这不是它以前的工作方式.

有谁知道如何让这项工作再次成为旧的方式?

.net c# ado.net-entity-data-model entity-framework-4

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