title: Forgiving/Fuzzy search with LINQ
body: <p>I'm attempting to implement a search against a DB that I inherited. The requirement states that the user must be able to search for an object by name. Unfortunately, an object could have multiple names associated with it. For example:</p>
  
  <blockquote>
  <pre><code>ID    Name
  1     John and Jane Doe
  2     Foo McFoo
  3     Boo McBoo
  </code></pre>
  </blockquote>
  
  <p>It's easy enough to implement a search when a single name exists in each record:</p>
  
  <pre><code>var objects =  from x in db.Foo
                 where x.Name.Contains("Foo McFoo")
                 select x;
  </code></pre>
  
  <p>However, when multiple names exist, that approach does not work.</p>
  
  <p><strong>Question:</strong> Is it possible to write a search method that would return record one (John and Jane Doe) when someone uses the search terms <code>John Doe</code> or <code>Jane Doe</code>?</p>