{"action":"created","issue":{"url":"https://api.github.com/repos/CollaboratingPlatypus/PetaPoco/issues/234","labels_url":"https://api.github.com/repos/CollaboratingPlatypus/PetaPoco/issues/234/labels{/name}","comments_url":"https://api.github.com/repos/CollaboratingPlatypus/PetaPoco/issues/234/comments","events_url":"https://api.github.com/repos/CollaboratingPlatypus/PetaPoco/issues/234/events","html_url":"https://github.com/CollaboratingPlatypus/PetaPoco/issues/234","id":125587975,"number":234,"title":"PetaPoco.cs (Core) doesn't compile (Circular base class dependency)","user":{"login":"MamadouSy","id":10129000,"avatar_url":"https://avatars.githubusercontent.com/u/10129000?v=3","gravatar_id":"","url":"https://api.github.com/users/MamadouSy","html_url":"https://github.com/MamadouSy","followers_url":"https://api.github.com/users/MamadouSy/followers","following_url":"https://api.github.com/users/MamadouSy/following{/other_user}","gists_url":"https://api.github.com/users/MamadouSy/gists{/gist_id}","starred_url":"https://api.github.com/users/MamadouSy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MamadouSy/subscriptions","organizations_url":"https://api.github.com/users/MamadouSy/orgs","repos_url":"https://api.github.com/users/MamadouSy/repos","events_url":"https://api.github.com/users/MamadouSy/events{/privacy}","received_events_url":"https://api.github.com/users/MamadouSy/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/CollaboratingPlatypus/PetaPoco/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":{"login":"pleb","id":595869,"avatar_url":"https://avatars.githubusercontent.com/u/595869?v=3","gravatar_id":"","url":"https://api.github.com/users/pleb","html_url":"https://github.com/pleb","followers_url":"https://api.github.com/users/pleb/followers","following_url":"https://api.github.com/users/pleb/following{/other_user}","gists_url":"https://api.github.com/users/pleb/gists{/gist_id}","starred_url":"https://api.github.com/users/pleb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pleb/subscriptions","organizations_url":"https://api.github.com/users/pleb/orgs","repos_url":"https://api.github.com/users/pleb/repos","events_url":"https://api.github.com/users/pleb/events{/privacy}","received_events_url":"https://api.github.com/users/pleb/received_events","type":"User","site_admin":false},"milestone":null,"comments":3,"created_at":"2016-01-08T10:57:02Z","updated_at":"2016-01-10T08:37:29Z","closed_at":null,"body":"Hi,\r\n\r\nFirst of all, I'd really like your API and have to says: Thanks you a lot!\r\n\r\nI've just install the PetaPoco.Core version version 5.1.107-beta via nuget, I can't compile the code.\r\nI've got the following error:\r\n\r\nCircular base class dependency involving 'PetaPoco.DatabaseConfiguration' and 'PetaPoco.DatabaseConfiguration.IBuildConfigurationSettings'\tPROJECT_PATH\\Models\\PetaPoco.cs\t\r\nLine 2455\t, Column 18\r\n\r\nI already know why and how to fix the error.\r\nThis happen because the class DatabaseConfiguration implements the interface IBuildConfigurationSettings which is define inside the DatabaseConfiguration:\r\n\r\n```C#\r\n\r\n    /// <summary>\r\n    ///     A helper class which enables fluent configuration.\r\n    /// </summary>\r\n    public class DatabaseConfiguration : IDatabaseBuildConfiguration, DatabaseConfiguration.IBuildConfigurationSettings, IHideObjectMethods\r\n    {\r\n        private readonly IDictionary<string, object> _settings = new Dictionary<string, object>();\r\n\r\n        public interface IBuildConfigurationSettings\r\n```\r\n\r\nIf you move the interface outside the class (+ some little refactoring) everything is working fine!\r\n\r\nCould you please take a look on that for the next version?\r\n"},"comment":{"url":"https://api.github.com/repos/CollaboratingPlatypus/PetaPoco/issues/comments/170326139","html_url":"https://github.com/CollaboratingPlatypus/PetaPoco/issues/234#issuecomment-170326139","issue_url":"https://api.github.com/repos/CollaboratingPlatypus/PetaPoco/issues/234","id":170326139,"user":{"login":"pleb","id":595869,"avatar_url":"https://avatars.githubusercontent.com/u/595869?v=3","gravatar_id":"","url":"https://api.github.com/users/pleb","html_url":"https://github.com/pleb","followers_url":"https://api.github.com/users/pleb/followers","following_url":"https://api.github.com/users/pleb/following{/other_user}","gists_url":"https://api.github.com/users/pleb/gists{/gist_id}","starred_url":"https://api.github.com/users/pleb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pleb/subscriptions","organizations_url":"https://api.github.com/users/pleb/orgs","repos_url":"https://api.github.com/users/pleb/repos","events_url":"https://api.github.com/users/pleb/events{/privacy}","received_events_url":"https://api.github.com/users/pleb/received_events","type":"User","site_admin":false},"created_at":"2016-01-10T08:37:29Z","updated_at":"2016-01-10T08:37:29Z","body":"OK, so I can replicate the issue when building via the command line and specifying tools version 4.0. If I set the VS project to use tools version 4.0, VS 2015 doesn't fail - sigh. I believe this is because Roslyn is is still compiling the code and doesn't honour the v4.0 build bug.\r\n\r\nThe next best thing to add it as a build step to the CI build script (https://github.com/CollaboratingPlatypus/PetaPoco/commit/1a7ae3fbfd87d8ecefbcd932e36c0154793bfeaf), which when run gives a [failed build](https://ci.appveyor.com/project/collaboratingplatypus/petapoco/build/5.1.108). And of course, after the [fix](https://github.com/CollaboratingPlatypus/PetaPoco/commit/ea1dc8668b4665f4f68282caf647612823b7feac) a [successful build](https://ci.appveyor.com/project/collaboratingplatypus/petapoco/build/5.1.109)"}}