Customer テーブルと Address テーブル (customer_id、address_forename、address_surname、address_street、address_city、address_zip、address_storedtime) があり、customer_id は外部キーです。
1 人の顧客が複数のアドレスを持つことができます。
今、次のようにLINQを使用して最後に入力されたアドレスのみを取得しようとしています。これにより、アドレスを文字列に入れて返すことができます:コード:
var customerAddress = (from c in myDB.address
where (c.customer_id == customerId)
select new
{
c.customer_id,
c.address_forename,
c.address_surname,
c.address_street,
c.address_city,
c.address_zip,
c.address_storedtime
}).GroupBy(g => new
{
Customer = .customer_id,
Address = g.address_forename + " " + g.address_surname + " " + g.address_street + " " + g.address_city + " " + g.address_zip
}).Select(g => new
{
g.Key.Customer,
g.Key.Address,
StoredTime = g.Max(x => x.address_storedtime)
}).Disinct();/*First();*/
string result = "";
foreach (var ad in customerAddress)
{
if (ad.Address != null)
{
result = ad.Address;
}
break;
}
return result;
1 つだけを取得しようとしているのに、DB for the Customer の異なるアドレスに対して同じアドレス文字列を取得しています。