title: What happens if I don't specify StringLength or MaxLength on a string property?
body: <p>Right now I'm creating the models for a database with the code-first approach. It will be for a really big data (like millions of rows). So, I'm trying to be very careful about the types I chose. Using shorts, bytes and enums wherever possible.</p>
  
  <p>Now, StringLength and MaxLength annotations are both limiting the maximum allowed length of a string (or an array for the latter). </p>
  
  <p>So, do they designate the number of bytes database is reserving for that field? If so, how much bytes are reserved when they hadn't been specified? Or are they merely for validation purposes and nothing more? </p>
  
  <p>I'm not even sure if the reserved space in database is relevant to the type I choose. Maybe the inside logic is totally different.</p>
  
  <p>When I think about it, another question pops in my head. What happens then, if I add an "Article" column with StringLength(1000)? Considering one <em>char</em> occupies 2 bytes, is it now reserving 2kB for each field? Or is it totally unrelated to that?</p>