私はiTunes/amazon/googlePlayアフィリエイトプログラムで働いており、Webサービス内の外部リンクテーブルにあるURLにAffiliateCodeを追加します。これは、Webサービスが最初に外部リンク[テーブル]から利用可能な異なるリンクをid_cdで収集し、利用可能なアフィリエイトプログラムがあるかどうかを比較するためにAffiliateProgram [テーブル]をループする必要があることを意味します。MVC C#Webサービスは2つのテーブルを結合し、出力を結合します
ExternalLink[Table]
public int id_external_link { get; set; }
public int id_cd { get; set; }
public string Name { get; set; }
public string URL { get; set; }
AffiliateProgram[Table]
public int ID { get; set; }
public string AffiliateName { get; set; }
public string AffiliateSite { get; set; }
public string AffiliateCode { get; set; }
public Nullable<int> CodePosition { get; set; }
AffiliateProgram [テーブル] AffiliateNameとExternalLinks [テーブル]の名前は常に同じです。
これは私がそれを設定していたものですが、私はそれがまだ動作するようにはなっておらず、最後の日にはまだ立ち往生していません。
[Route("api/Cds/ExternalLinks/{id_cd}")]
public async Task<List<ExternalLink>> GetAllExternalLinks(int id_cd)
{
List<ExternalLink> externallinks = await db.ExternalLink
.Where(EL => EL.id_cd == id_cd)
.ToListAsync();
List<ExternalLink> ListAllExternalLinks = new List<ExternalLink>();
for (int i = 0; i < 4; i++)
{
ExternalLink CDEL = new ExternalLink();
if (CDEL.Name == "Itunes") {
var query = from EL in db.ExternalLink
join AP in db.AffiliateProgram on EL.Name equals AP.AffiliateName
select new
{
AffiliateName = AP.AffiliateName,
Name = EL.Name,
AffilateCode = AP.AffiliateCode,
URL = EL.URL
};
URL = query.First().Name + "?mt=1&at=" + query.First().AffiliateCode + "&ct=" + id_cd;
}
ListAllExternalLinks.Add(CDEL);
}
ListAllExternalLinks.AddRange(externallinks);
return ListAllExternalLinks;
}
これは4つの空の結果と、ポストマスターに次のようになり:
[
{},
{},
{},
{},
{
"id_external_link": 1459,
"id_cd": 13376,
"name": "Itunes",
"url": "https://itunes.apple.com/...countingcrows"
},
{
"id_external_link": 1460,
"id_cd": 13376,
"name": "Amazon",
"url": "https://www.amazon.com/....countingcrows"
},
{
"id_external_link": 1461,
"id_cd": 13376,
"name": "GooglePlay",
"url": "https://play.google.com/...countingcrows"
}
]
はい私もそれを得ましたが、データベースを変更できないため、外部キーを追加して実行可能なコードを追加します –