2008-12-10 4 views
0

Я пытаюсь создать необязательную связь между несколькими таблицами. У меня есть одна таблица под названием Invoice. Таблица счетов содержит ссылку FK на таблицу Customer в поле CustomerId. В таблице счетов также имеется не связанная с FK ссылка на проект, доступный через поле ProjectId.Как создать дополнительные ассоциации в классах Linq-To-Sql?

Есть ли способ настроить мои классы Linq-To-Sql, чтобы иметь необязательную связь между таблицей «Счет-фактура» и «Проект»?

Я хотел бы иметь возможность выбрать Название проекта через эту ассоциацию, если таковая имеется.

Разъяснение

Можно ли установить это в файле DBML? У меня есть частичный класс, который расширяет объект-фактуру и хотел бы иметь возможность создать свойство под названием ProjectName, которое переносит Invoice.Project.Name.

Просто интересно, возможно ли это, даже если мне нужно будет вернуть значение левого соединения в запросе.

ответ

0

Я думаю, что я понял это ... это был путь проще, чем я думал. Все, что мне нужно проверить, чтобы проверить, являются ли отношения равными нулю в частичном классе, который расширяет класс LinqToSql.

Что-то вроде:

public string ModifiedByName 
    { 
     get 
     { 
      if (this.ModifiedByUser == null) 
       return string.Empty; 
      else 
       return this.ModifiedByUser.FirstName + " " + this.ModifiedByUser.LastName; 
     } 
    } 

    public string CreatedByName 
    { 
     get 
     { 
      if (this.CreatedByUser == null) 
       return string.Empty; 
      else 
       return this.CreatedByUser.FirstName + " " + this.CreatedByUser.LastName; 
     } 
    } 
0

Это должно сделать это (синтаксис VB):

Dim results = _ 
    From i in context.Invoice _ 
    Join c in context.Customer On i.CustomerId Equals c.CustomerId _ 
    Group Join p in context.Project On i.ProjectId Equals p.ProjectId Into g = Group _ 
    Select i.InvoiceName, c.CustomerName, ProjectName = (From x In g Select x.Name).SingleOrDefault 
+0

Есть в любом случае, чтобы установить это в файле DBML? – mattruma 2008-12-10 04:06:49

Смежные вопросы