4

How can I do the following join in EF? Tables have no relation with each other, no foreign keys.

Select t1.ID,  t1.firstname, t2.ID,t2.name from MY_TEST_TABLE1 t1, MY_TEST_TABLE2 t2
where t1.firstname = t2.name
1
  • 1
    That query doesn't have an outer join... Commented Feb 13, 2016 at 1:51

2 Answers 2

14

You could do this:

var query= from t1 in context.MY_TEST_TABLE1
           from t2 in context.MY_TEST_TABLE2
           where t1.firstname == t2.name
           select new { Table1Id= t1.ID, FirstName= t1.firstname, Table2Id=t2.ID,Name= t2.name};

Another way to do a cross join in Linq to Entities is using SelectMany extension method:

var query= context.MY_TEST_TABLE1.SelectMany(
    t1=>context.MY_TEST_TABLE2
        .Where(t2=>t1.firstname == t2.name)
        .Select(t2=>new { 
            Table1Id= t1.ID,
            FirstName= t1.firstname, 
            Table2Id=t2.ID,
            Name= t2.name
        })
    );
Sign up to request clarification or add additional context in comments.

Comments

1

Maybe something like this:

var results = from t1 in dbcontext.my_test_table1s
              join t2 in dbcontext.my_test_table2s on t1.firstname equals t2.name
              select new 
              { 
                   t1id = t1.Id, 
                   firstname = t1.firstname, 
                   t2id = t2.id, 
                   name = t2.name 
              };

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.