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);
    }