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
{ {
public class CodeType : CodeElement public class CodeType : CodeElement
{ {
CodeTypeMembers members;
/// <summary> /// <summary>
/// Note that projectContent may be different to the IClass.ProjectContent since the class /// 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 /// is retrieved from the namespace contents and could belong to a separate project or
@ -46,7 +48,12 @@ namespace ICSharpCode.PackageManagement.EnvDTE
} }
public virtual CodeElements Members { 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 { public virtual CodeElements Bases {

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

@ -2,6 +2,7 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.Collections.Generic;
using ICSharpCode.PackageManagement.EnvDTE; using ICSharpCode.PackageManagement.EnvDTE;
using ICSharpCode.SharpDevelop.Dom; using ICSharpCode.SharpDevelop.Dom;
using NUnit.Framework; using NUnit.Framework;
@ -261,5 +262,21 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual(1, partialClasses.Count); Assert.AreEqual(1, partialClasses.Count);
Assert.AreEqual(codeClass, firstClass); 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