Как создать дополнительные ассоциации в Linq-To-Sql классов?

голоса
0

Я пытаюсь создать дополнительную связь между парой таблиц. У меня есть одна таблица с именем Invoice. Таблица счета имеет ссылку FK к столу клиента через CUSTOMERID поля. В таблице Счетов также имеет не вынужденное FK ссылку на проект, способный через поле ProjectID.

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

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

осветление

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

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

Задан 10/12/2008 в 04:49
источник пользователем
На других языках...                            


2 ответов

голоса
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;
        }
    }
Ответил 12/12/2008 в 14:25
источник пользователем

голоса
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
Ответил 10/12/2008 в 05:05
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more