Да, вы можете определить внешние ключи, которых нет в целевой базе данных. Соединения, сгенерированные LINQ to SQL, в итоге будут такими же, под которыми я имею в виду:
from category in db.Categories
from product in category.Products
select new
{
Category = category,
Product = product
}
сгенерирует тот же T-SQL, что и этот:
from category in db.Categories
join product in db.Products on category.CategoryId equals product.CategoryId
select new
{
Category = category,
Product = product
}
что бы это было:
SELECT
*
FROM
Category INNER JOIN Product ON Category.CategoryId = Product.CategoryId
Это полезный метод, позволяющий сделать устаревшие схемы более удобными.