创建没有外键的LINQ关联

时间:2009-06-07 05:55:28

标签: sql linq foreign-keys

是否有可能在LINQ中使用ContactAddress.Contact之类的内容而不在SQL Server中创建这两者之间的外键关系(通过Contact.Id< - > ContactAddress.ContactId)?

谢谢:)

2 个答案:

答案 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)

如果要在对象关系映射中创建关系(即使数据库中不存在该关系作为声明的外键),也可以使用对象关系设计器来实现。

http://msdn.microsoft.com/en-us/library/bb629295.aspx