0

私はEFを使用して連絡先を検索し、グラフに会社を含めてからDTOに入れています。会社の DTO が存在する場合のみ作成し、存在しない場合は空の DTO を含めたくありません。(RESTサービスで転送されており、無数の空のタグは必要ありません。)

return (from c in _dc.Contact.Include("Company")
                where c.ContactId == id
                select new ContactDto
                {
                    ContactId = c.ContactId,
                    FirstName = c.FirstName,
                    LastName = c.LastName,
                    Company = new CompanyDto
                                {
                                    CompanyId = c.Company.CompanyId,
                                    Name = c.Company.Name
                                } 
                }).ToList();

これは、会社が関連付けられていない連絡先でクラッシュしました。通常は空白のオブジェクトを作成しますが、これには上記のように空白のタグが多数含まれます。

私は何かをしたいです(明らかに不可能です)

return (from c in _dc.Contact.Include("Company")
                where c.ContactId == id
                select new ContactDto
                {
                    ContactId = c.ContactId,
                    FirstName = c.FirstName,
                    LastName = c.LastName,
                    if (c.Company !=null) 
                    {
                        Company = new CompanyDto
                                {
                                    CompanyId = c.Company.CompanyId,
                                    Name = c.Company.Name
                                } ;
                    }
                }).FirstOrDefault();

前もって感謝します

オリ

4

2 に答える 2

0

このようなことを試してください。目の前に VS がないので、構文に注意する必要があります。

return (from c in _dc.Contact 
              join co in _dc.Company on c.CompanyId equals co.CompanyId into subCompanies
                from sc in subCompanies.DefaultIfEmpty()
                where c.ContactId == id
                select new ContactDto
                {
                    ContactId = c.ContactId,
                    FirstName = c.FirstName,
                    LastName = c.LastName,
                    Company = sc
                }).FirstOrDefault()
于 2013-08-03T08:36:44.000 に答える