title: Can I disable automatic relationships in Entity Framework Code First?
body: <p>I noticed that Entity Framework still has a lot of "automagical" features in their latest release.  As always, this is a truly double-edged sword.  </p>
  
  <p>Specifically, I'm using the OnModelBuilder event to create my model on the fly in code using the fluentAPI (http://msdn.microsoft.com/en-us/library/hh295844(v=vs.103).aspx).  I have a large set of entities, and they don't all comply with the Microsoft "standards".  For example, my ID columns are named Person_id instead of PersonId.  As such, Entity doesn't always auto-detect the primary key on a table, or at least, it doesn't seem to do so.</p>
  
  <p>I don't mind being explicit when building the model, but what does trouble me is that <strong>I'm not always sure what properties and relationships Entity will auto-detect and which ones it will erroneously ignore or misidentify.</strong>  Since most of my entities also have a partial class with helper methods and properties (stuff to handle enums, etc), I greatly fear that someday Entity will auto create mappings between things which shouldn't be mapped (the failure could be Entity or some unsuspecting programmer).</p>
  
  <p><strong>Is there a way I can disable Entity's auto-relationship-hookup feature so that I can be 100% explicit in my OnModelBuilder method?  Or, at minimum, how can I know when I need to add extra mapping details (like needing to declare a field optional, or when a specific navigation property won't be autodetected)?</strong></p>
  
  <p>Thanks!</p>