static void Main(string[] args) { var guids = Enumerable.Range(0, 10).Select(i => Guid.NewGuid()).ToList(); var m2s = guids.Select(g => new Model2 { ID = g }).ToList(); var model1 = new Model1 { Model2ID = m2s[4].ID }; model1.LinkTo(m2s, (m1, m2) => m1.Model2 = m2, (m1, m2) => m2.ID == m1.Model2ID); var model1a = new Model1 { Model2ID = m2s[4].ID }; model1a.LinkTo(m2s, m1 => m1.Model2, m1 => m1.Model2ID, m2 => m2.ID); var model1b = new Model1 { Model2ID = m2s[4].ID }; model1b.LinkTo(m2s, m1 => m1.Model2, (m1, m2) => m1.Model2ID == m2.ID); }