是否有可能在LINQ中使用ContactAddress.Contact之类的内容而不在SQL Server中创建这两者之间的外键关系(通过Contact.Id< - > ContactAddress.ContactId)?
谢谢:)
答案 0 :(得分:4)
是的,您可以定义目标数据库中不存在的外键。 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
这是使遗留模式更有用的有用技术。
答案 1 :(得分:3)
如果要在对象关系映射中创建关系(即使数据库中不存在该关系作为声明的外键),也可以使用对象关系设计器来实现。