Да, вы можете определить внешние ключи, которые не существуют в целевой базе данных. Присоединяется генерируется LINQ к 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
Это полезный метод, позволяющий использовать устаревшие схемы более полезными.