Создать ассоциацию LINQ без иностранных ключей - PullRequest
3 голосов
/ 07 июня 2009

Возможно ли иметь что-то вроде ContactAddress.Contact в LINQ без создания связи внешнего ключа в SQL Server между этими двумя (что было бы по Contact.Id <-> ContactAddress.ContactId)?

Спасибо:)

Ответы [ 2 ]

4 голосов
/ 07 июня 2009

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

Это полезный метод, позволяющий сделать устаревшие схемы более удобными.

3 голосов
/ 08 июня 2009

Если вы хотите создать отношение в вашей объектно-реляционной карте (даже если это отношение не существует в базе данных в качестве объявленного внешнего ключа), вы можете сделать это с помощью конструктора объектно-реляционных.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...