Browse Source

Fix primary key property being identified as a property for a related entity.

pull/28/head
Matt Ward 13 years ago
parent
commit
e753154082
  1. 9
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeType.cs
  2. 17
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeClass2Tests.cs

9
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeType.cs

@ -8,6 +8,8 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -8,6 +8,8 @@ namespace ICSharpCode.PackageManagement.EnvDTE
{
public class CodeType : CodeElement
{
CodeTypeMembers members;
/// <summary>
/// Note that projectContent may be different to the IClass.ProjectContent since the class
/// is retrieved from the namespace contents and could belong to a separate project or
@ -46,7 +48,12 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -46,7 +48,12 @@ namespace ICSharpCode.PackageManagement.EnvDTE
}
public virtual CodeElements Members {
get { return new CodeTypeMembers(ProjectContent, Class); }
get {
if (members == null) {
members = new CodeTypeMembers(ProjectContent, Class);
}
return members;
}
}
public virtual CodeElements Bases {

17
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeClass2Tests.cs

@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using ICSharpCode.PackageManagement.EnvDTE;
using ICSharpCode.SharpDevelop.Dom;
using NUnit.Framework;
@ -261,5 +262,21 @@ namespace PackageManagement.Tests.EnvDTE @@ -261,5 +262,21 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual(1, partialClasses.Count);
Assert.AreEqual(codeClass, firstClass);
}
[Test]
public void Members_GetFirstPropertyTwice_PropertiesAreConsideredEqualWhenAddedToList()
{
CreateProjectContent();
CreatePublicClass("MyClass");
helper.AddPropertyToClass("MyClass.MyProperty");
CodeProperty2 property = codeClass.Members.FirstCodeProperty2OrDefault();
var properties = new List<CodeProperty2>();
properties.Add(property);
CodeProperty2 property2 = codeClass.Members.FirstCodeProperty2OrDefault();
bool contains = properties.Contains(property2);
Assert.IsTrue(contains);
}
}
}

Loading…
Cancel
Save